switch_statement
::=
"switch" "(" expression ")" "{"
{ ( "case" expression ":" )
| ( "default" ":" )
| statement }
"}"
This rule is called by-> statement
Explicationsswitch, au lieu de if imbriqués.
Lors de la comparaison, si aucune valeur énumérée ne correspond à la valeur
fournie, on exécute la branche default. Celle-ci est toutefois
facultative.
Exemple
switch (choix) {
case 'a' :
afficher();
break;
case 'i' :
somme = 0;
compteur = 0;
break;
case 'q' :
quitter();
break;
case '$' :
System.out.prinln("touche réservée");
default :
System.out.println("touche non valide !");
}
On remarquera l'utilisation de l'instruction break. En effet,
si l'on n'inclut pas ce mot-clé, toutes les instructions se trouvant dans
la branche correspondante sont exécutée, ainsi que toutes les instructions
se trouvant dans les branches suivantes.
Dans l'exemple ci-dessus, on voit que si choix vaut '$'
alors on affichera les deux messages ("touche réservée" et "touche non valide !").
Attention !switch qu'avec des types primitifs d'une
taille maximum de 32 bits (byte, short, int, char) et pas avec
des objets complexes, tels que des chaînes de caractères (String)
ou des nombres à virgule flottante.