Programmation C-C++/Branchement conditionnel

En cours d'importationlink={{{link}}}

Ce livre est en cours de copie depuis le site http://casteyde.christian.free.fr/online/cours_cpp/ qui le fournit sous licence GFDL.

Cours de C/C++
^
Les structures de contrôle
La structure if
La boucle for
Le while
Le do
Branchement conditionnel
Le saut
Rupture de séquence

Livre original de C. Casteyde

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 - Branchement conditionnel switchModifier


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.