Istruzione switch Java (con esempi)

In questo tutorial imparerai a utilizzare l'istruzione switch in Java per controllare il flusso di esecuzione del tuo programma con l'aiuto di esempi.

L' switchistruzione ci consente di eseguire un blocco di codice tra molte alternative.

La sintassi switchdell'istruzione in Java è:

 switch (expression) ( case value1: // code to be executed if // expression is equal to value1 break; case value2: // code to be executed if // expression is equal to value2 break;… … default: // default statements )

Come funziona l'istruzione switch?

L'espressione viene valutata una volta e confrontata con i valori di ciascuna etichetta del caso .

  • Se c'è una corrispondenza, viene eseguito il codice corrispondente dopo l' etichetta del caso corrispondente .
    Ad esempio, se il valore dell'espressione è uguale a valore2, case value2:viene eseguito il codice dopo .
  • Se non c'è corrispondenza, default:viene eseguito il codice dopo .

Nota : possiamo eseguire la stessa funzionalità utilizzando Java if … else … if ladder. Tuttavia, la sintassi dell'istruzione switch è più pulita e molto più facile da leggere e scrivere.

Diagramma di flusso dell'istruzione switch

Diagramma di flusso dell'istruzione switch Java

Esempio 1: istruzione switch Java

 // Java Program to check the size // using the switch… case statement class Main ( public static void main(String() args) ( int number = 44; String size; // switch statement to check size switch (number) ( case 29: size = "Small"; break; case 42: size = "Medium"; break; // match the value of week case 44: size = "Large"; break; case 48: size = "Extra Large"; break; default: size = "Unknown"; break; ) System.out.println("Size: " + size); ) )

Uscita :

 Taglia: Large

Nell'esempio precedente, abbiamo utilizzato l'istruzione switch per trovare la dimensione. Qui abbiamo un numero variabile. La variabile viene confrontata con il valore di ciascuna istruzione case.

Poiché il valore corrisponde al caso 44 , alla variabile size viene assegnato un valore Large.

istruzione break in Java switch … case

Notare che abbiamo usato l' breakistruzione in ogni blocco case. Questo è utile per terminare l'istruzione.

Se l' breakistruzione non viene utilizzata, vengono eseguiti tutti i casi dopo il caso corrispondente. Per esempio,

 class Main ( public static void main(String() args) ( int expression = 2; // switch statement to check size switch (expression) ( case 1: System.out.println("Case 1"); // matching case case 2: System.out.println("Case 2"); case 3: System.out.println("Case 3"); default: System.out.println("Default case"); ) ) )

Produzione

 Caso 2 Caso 3 Caso predefinito

Nell'esempio sopra, non abbiamo usato l' breakistruzione. Qui, l'espressione corrisponde a case 2.

Puoi vedere che insieme a case 2, vengono eseguiti anche tutti i seguenti casi.

Questo non è l'output desiderato. Quindi, è necessario utilizzare l' breakistruzione con ogni blocco di casi .

Esempio 2: creazione di Calcolatrice utilizzando l'istruzione switch

Il programma seguente richiede tre input dall'utente: un operatore e 2 numeri . In base all'operatore fornito dall'utente, esegue il calcolo sui numeri. Quindi il risultato viene visualizzato sullo schermo.

Prima di eseguire il programma, assicurati di conoscere Java Scanner per ricevere input dall'utente.

 import java.util.Scanner; class Main ( public static void main(String() args) ( char operator; Double number1, number2, result; // create an object of Scanner class Scanner input = new Scanner(System.in); // ask users to enter operator System.out.print("Choose an operator: +, -, *, or /: "); operator = input.next().charAt(0); // ask users to enter numbers System.out.print("Enter first number: "); number1 = input.nextDouble(); System.out.println("Enter second number: "); number2 = input.nextDouble(); switch (operator) ( // performs addition between numbers case '+': result = number1 + number2; System.out.print(number1 + "+" + number2 + " = " + result); break; // performs subtraction between numbers case '-': result = number1 - number2; System.out.print(number1 + "-" + number2 + " = " + result); break; // performs multiplication between numbers case '*': result = number1 * number2; System.out.print(number1 + "*" + number2 + " = " + result); break; // performs division between numbers case '/': result = number1 / number2; System.out.print(number1 + "/" + number2 + " = " + result); break; default: System.out.println("Invalid operator!"); break; ) input.close(); ) )

Uscita 1

 Scegli un operatore: +, -, * o /: + Inserisci il primo numero: 23 Inserisci il secondo numero: 21 23,0 + 21,0 = 44,0

Uscita 2

 Scegli un operatore: +, -, * o /: - Inserisci il primo numero: 24 Inserisci il secondo numero: 13 24,0-13,0 = 11,0

Uscita 3

 Scegli un operatore: +, -, * o /: * Inserisci il primo numero: 12 Inserisci il secondo numero: 6 12.0 * 6.0 = 72.0

Uscita 4

 Scegli un operatore: +, -, * o /: / Inserisci il primo numero: 36 Inserisci il secondo numero: 6 36.0 / 6.0 = 6.0

Uscita 5

Scegli un operatore: +, -, * o /:? Immettere il primo numero: 12 Immettere il secondo numero: 23 Operatore non valido!

Nell'esempio sopra, stiamo usando l' switch… caseistruzione per eseguire addizioni, sottrazioni, moltiplicazioni e divisioni.

Nota : l'istruzione switch Java funziona solo con:

  • Tipi di dati Java Primitive: byte, short, char e int
  • Tipi enumerati Java
  • Java String Class
  • Classi wrapper Java: carattere, byte, breve e intero.

Articoli interessanti...