2.5. Le branchement conditionnel
Dans le cas où plusieurs instructions différentes doivent être exécutées selon
la valeur d'une variable de type intégral, l'écriture de if successifs peut être
relativement lourde. Le C/C++ fournit donc la structure de contrôle switch, qui permet
de réaliser un branchement conditionnel. Sa syntaxe est la suivante :
switch (valeur)
{
case cas1:
[instruction;
[break;]
]
case cas2:
[instruction;
[break;]
]
⋮
case casN:
[instruction;
[break;]
]
[default:
[instruction;
[break;]
]
]
}
valeur est évalué en premier. Son type doit être entier.
Selon le résultat de l'évaluation, l'exécution du programme se poursuit au cas de même valeur. Si aucun
des cas ne correspond et si default est présent, l'exécution se poursuit après
default. Si en revanche default n'est pas présent, on sort
du switch.
Les instructions qui suivent le case approprié ou
default sont exécutées. Puis, les instructions du cas
suivant sont également exécutées (on ne sort donc pas du switch).
Pour forcer la sortie du switch, on doit utiliser le mot clé break.
Exemple 2-5. Branchement conditionnel switch
i= 2;
switch (i)
{
case 1:
case 2: /* Si i=1 ou 2, la ligne suivante sera exécutée. */
i=2-i;
break;
case 3:
i=0; /* Cette ligne ne sera jamais exécutée. */
default:
break;
}Note : Il est interdit d'effectuer une déclaration de variable
dans un des case d'un switch.