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 (
case
break;//(opzionale)
case
istruzione2
case espressione2:▼
break;//(opzionale)
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) {
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]]
|