C plusplus:Structures de contrôle branchements conditionnels
Un article de WikiTuto.
Sommaire |
Définition
On a souvent besoin de n'effectuer certaines instructions que dans certains cas. On dispose pour cela du IF et du SWITCH.
If - Else (Si - Sinon)
Structure
if (expression) instruction1
ou :
if (expression) instruction1 else instruction2
Si l'expression est vraie on effectue l'instruction1, puis on passe à la suite. Sinon, on effectue l'instruction 2 puis on passe à la suite (dans le cas sans else on passe directement à la suite).
Exercice (jeu)
modifier le jeu de l'exercice (do_while) en précisant au joueur à chaque essai si sa proposition est trop grande ou trop petite.
L'instruction d'un if peut être un autre if (imbriqué). Exemple :
if(c1) i1; else if (c2) i2; else if (c3) i3; else i4; i5;
Explication
si c1 est vrai alors on exécute i1 puis i5, sinon mais si c2 alors i2 puis i5, ... Si ni c1 ni c2 ni c3 alors i4 puis i5.
Le else étant facultatif, il peut y avoir une ambiguïté s'il y a moins de else que de if. En fait, un else se rapporte toujours au if non terminé (c'est à dire à qui on n'a pas encore attribué de else) le plus proche. Une solution pour lever l'mbiguïté est de délimiter le if sans else en l'entourant de {}.
Exemples
if(c1) if(c2) i1; else i2;
si c1 et c2 alors i1, si c1 et pas c2 alors i2, si pas c1 alors (quel que soit c2) rien.
if (c1) {if (c2) i1;} else i2;
si c1 et c2 alors i1, si c1 et pas c2 alors rien, si pas c1 (quel que soit c2) alors i2.
Switch - Case (brancher - dans le cas)
Le switch est aussi appellé le « goto calculé » Cette structure de contrôle permet de remplacer une suite trop longue de if et else if (mais rien ne vous force à l'utiliser, vous pouvez parfaitement vous limiter aux ifs).
Structure
switch(expression_entière)
{
case cste1:instructions
case cste2:instructions
........
case csteN:instructions
default :instructions
}
L'expression ne peut être qu'entière (char, int, long). L'expression est évaluée, puis on passe directement au "case" correspondant à la valeur trouvée. Le cas default est facultatif, mais si il est prévu il doit être le dernier cas.
Exemple
fonction vérifiant si son argument c est une voyelle.
int voyelle(char c)
{
switch(c)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'y':return(1); /* 1=vrai */
default :return(0)
}
}
Remarque : l'instruction break permet de passer directement à la fin d'un switch (au } ). Dans le cas de switch imbriqués on ne peut sortir que du switch intérieur. Exemple :
switch (a)
{
case 1:inst1;inst2;....;break;
case 2:....;break;
default:.....
} /*endroit où l'on arrive après un break */
Exercice (calcul)
faire un programme simulant une calculatrice 4 opérations.
Voir aussi
- Les instructions et leur séquencement
- Structures de contrôle : les boucles
- Structures de contrôle : les branchements conditionnels
- Branchements inconditionnels (goto)
Auteur :Patrick TRAU.
Copyright : utilisation de ces documents libre pour tout usage personnel. Utilisation autorisée pour tout usage public non commercial, à condition de citer son auteur (Patrick TRAU, IPST, Université Louis Pasteur Strasbourg, email : Patrick.Trau (à) ipst-ulp.u-strasbg.fr ) et de me signaler tout usage intensif. Utilisation commerciale interdite sans accord écrit de ma part.



