Table des matières:
Vidéo: LANGAGE C - 13 - La structure conditionnelle if - else 2024
Partie de C ++ pour Dummies Cheat Sheet
Les structures C ++ suivantes dirigent le flux de contrôle à travers le programme. Si vous êtes un programmeur expérimenté, la fonction de ces structures vous sera familière avec d'autres langues.
IF
La commande suivante évalue booleanExpression. Si elle est évaluée à true, le contrôle passe à expressions1. Si ce n'est pas le cas, le contrôle passe aux expressions facultatives2.
if (expression booléenne) {expressions1;} [else {expressions2;}]
WHILE
La commande suivante évalue booleanExpression. Si cela est vrai, le contrôle passe aux expressions. À la fin du bloc, le contrôle revient à booleanExpression et répète le processus.
while (booleanExpression) {expressions;}
DO … WHILE
La commande suivante exécute des expressions. Il évalue ensuite booleanExpression. Si cela est vrai, le contrôle revient en haut de la boucle et répète le processus.
do {expressions;} while (expression booléenne);
FOR
La commande suivante exécute initCommand qui peut être une expression ou une déclaration de variable. Il évalue ensuite boolExpression. Si cela vaut true, le contrôle passe à expressions1. Si boolExpression est false, le contrôle passe à la première instruction après l'accolade fermée de la boucle for. Une fois les expressions terminées, le contrôle passe à l'expression contenue dans loopExpression avant de retourner à boolExpression pour répéter le processus. Si initCommand déclare une nouvelle variable, elle devient hors champ dès que le contrôle passe en dehors de la boucle.
pour (initCommand; boolExpression; loopExpression) {expressions;}
FOR (EACH)
La norme 2011 introduit une seconde forme de boucle for, parfois appelée "for each" car de sa similitude avec le foreach trouvé dans d'autres langues. Dans cette forme, la variable déclarée dans la déclaration prend la valeur du premier membre de la liste et exécute le bloc d'expressions. Une fois terminée, la variable déclarée prend la deuxième valeur de list et exécute à nouveau les expressions. Ce processus est répété pour chaque valeur de la liste.
for (declaration: list) {expressions;}
SWITCH
La commande suivante évalue integerExpression et compare le résultat à chacun des cas listés. Si la valeur est trouvée égale à l'une des valeurs intégrales constantes, val1, val2, etc., le contrôle passe à l'ensemble d'expressions correspondant et continue jusqu'à ce que le contrôle rencontre une coupure.Si expression ne correspond à aucune des valeurs, le contrôle passe aux expressions N suivantes par défaut.
switch (integerExpression) {cas val1: expressions1; Pause; cas val2: expressions2; Pause; [default: expressionsN;]}
BREAK, CONTINUE, GOTO
Un continue passe le contrôle à la fin de l'accolade fermée de l'un des contrôles en boucle. Cela provoque la boucle à continuer avec l'itération suivante. Par exemple, la boucle suivante traite les nombres premiers entre 1 et 20:
pour (int i = 0; i <20; i ++) {// si le nombre n'est pas premier … si (! IsPrime (i)) {/ / … passer à la prochaine valeur de je continue;} // continuer sur le traitement}
Une pause passe le contrôle à la première instruction après l'accolade fermée de l'une des commandes en boucle. Cela provoque l'exécution pour quitter la boucle immédiatement. Par exemple, le texte suivant lit les caractères jusqu'à ce que et la fin du fichier soit rencontrée:
while (true) {// lire une ligne à partir de l'entrée input input >> line; // si une erreur ou une fin de fichier se produit … if (cin.eof () || cin.échec ()) {// … puis quitte le saut de boucle;} // traite la ligne}
A goto label passe le contrôle à l'étiquette fournie. L'exemple de rupture ci-dessus aurait pu être écrit comme suit:
while (true) {// lit une ligne à partir de l'entrée input input >> line; // si une erreur ou une fin de fichier se produit … if (cin.eof () || cin.échec ()) {// … puis quitte la boucle goto exitLabel;} // traite la ligne} exitLabel: // le contrôle continue ici