Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS C FAQs C TUTORIELS C LIVRES C COMPILATEURS C SOURCES GTK+

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.

Responsable bénévole de la rubrique C : Arnaud Feltz (buchs) - Contacter par EMail :
Vos questions techniques : forum d'entraide C - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.