switch_statement

switch_statement 
      ::= 
      "switch" "(" expression ")" "{" 
      { ( "case" expression ":" ) 
      | ( "default" ":" ) 
      | statement } 
      "}" 

[rule list]
This rule is called by

-> statement

Explications

Lorsque l'on désire comparer une variable à plusieurs valeurs discrètes, on peut utiliser switch, 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 !

On ne peut utiliser 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.
Index général - Index concepts - Règles BNF
© 1996, DIP Genève, Alexandre Maret & Jacques Guyot
page générée Fri Jun 21 15:41:12 MET DST 1996