Java/Strutture di controllo: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 39:
 
==switch==
 
L’istruzione '''switch''' è utile in tutti quei casi in cui sia necessario decidere tra opzioni multiple prese in base al controllo di una sola variabile.
 
<source lang=java>
switch (da_confrontareespressione){
case espressioneespr_costante1:
istruzioni varie istruzione1
break;//(opzionale)
case espressione1espr_costante2:
istruzione2
case espressione2:
break;//(opzionale)
istruzioni varie
case espr_costante4:
istruzione3
break;//(opzionale)
...
default:
istruzioneDefault
}
</source>
 
Dopo che viene valutata l’espressione di '''switch''', il controllo della applicazione salta al primo '''case''' tale che
 
''espressione == espr_costante''
 
ed esegue il relativo blocco di codice. Nel caso in cui il blocco sia terminato con una istruzione '''break''', l’applicazione abbandona l’esecuzione del blocco '''switch''' saltando alla prima istruzione successiva al blocco, altrimenti il controllo viene eseguito sui blocchi case a seguire. Se nessun blocco case soddisfa la condizione viene controllata l’esistenza della label default ed eseguito, se presente, solo il blocco di codice relativo ed esce da '''switch'''.
 
L’istruzione '''switch''' permette di strutturare il blocco in maniera più leggibile di un if/else nidificato, ma ha una limitazione: il tipo di espressione deve essere un valore intero od una costante di tipo '''enum'''. Non è quindi possibile utilizzarlo con valori String o boolean. Fa eccezione il tipo char, in quanto viene valutato il valore intero del carattere:
 
<source lang=java>
switch (espressione) {
case espressione2'a':
System.out.println("carattere a");
break;
case 'b':
System.out.println("carattere b");
break;
 
default:
System.out.println("un carattere diverso da a e da b");
break;
}
</source>
 
 
[[Categoria:Java|Strutture di controllo]]