Le contrôle de flux en c ++ programmation

Les structures suivantes ++ C dirigent le flux de contrôle à travers le programme. Si vous êtes un programmeur expérimenté, la fonction de ces structures sera familier à d'autres langues.

Sommaire

SI

Les évalue de commande suivantes booleanEXpression. Si l'évaluation vrai, alors le contrôle passe à expressions1. Si non, alors le contrôle passe à l'option expressions2.

si (booleanExpression) {expressions1 -} [else {} expressions2-]

TANDIS QUE

Les évalue de commande suivantes booleanEXpression. Si cela est évaluée à vrai, alors le contrôle passe à expressions. À la fin du bloc, le contrôle passe à dos booleanExpression et répète le processus.

while (booleanExpression) {} expressions-

DO # 133-TOUT

Exécution de la commande suivants expressions. Il évalue ensuite booleanExpression. Si cette true, le contrôle revient au début de la boucle et répète le processus.




do {} while expressions- (booleanExpression) -

POUR

Exécution de la commande suivants initCommand qui peut être une expression ou une déclaration de variable. Il évalue ensuite boolExpression. Si cela est évaluée à vrai, alors le contrôle passe à expressions1. Si boolExpression est faux, alors le contrôle passe à la première déclaration après l'accolade de fermeture de la pour boucle. Une fois expressions complète, le contrôle passe à l'expression contenue dans loopExpression avant de retourner à boolExpression à répéter le processus. Si initCommand déclare une nouvelle variable, il est hors de portée dès que le contrôle passe à l'extérieur de la boucle.

pour (initCommand- boolExpression- loopExpression) {} expressions-

POUR CHAQUE)

Le Standard 2011 introduit une deuxième forme de pour boucle parfois connu comme un "pour chaque" en raison de sa similitude avec la pour chaque trouvé dans d'autres langues. Dans cette forme, la variable déclarée dans déclaration prend la valeur du premier élément de liste et exécute le expressions bloc. Une fois terminé, la variable déclarée prend la deuxième valeur de liste et exécute expressions de nouveau. Ce processus est répété pour chaque valeur de liste.

pour (déclaration: liste) {} expressions-

COMMUTATEUR

Les évalue de commande suivantes integerEXpression et compare le résultat à chacun des cas indiqués. Si la valeur trouvée est égale à une des valeurs entières constants, val1, val2, etc., le contrôle passe à l'ensemble correspondant d'expressions et continue jusqu'à ce que le contrôle rencontre un pause. Si l'expression ne correspond pas à l'une des valeurs, le contrôle passe au expressionsN suivant défaut.

interrupteur (integerExpression) {cas, val1: expressions1-break cas val2: expressions2-percée [défaut: expressionsN-]}

Break, continue, GOTO

UN continuer le contrôle passe à l'extrémité de l'entretoise de fermeture de l'une des commandes de bouclage. Cela provoque la boucle de poursuivre l'itération suivante. Par exemple, la boucle suivante traite des nombres premiers entre 1 et 20:

for (int i = 0 à i lt; 20- i ++) {// si le nombre est pas premier ... si) {// ... sauter sur la prochaine valeur de icontinue (isPrime (i!) -} // Procéder sur le traitement}

UN pause passe le contrôle à la première déclaration après l'accolade de fermeture de l'une des commandes de bouclage. Cela provoque l'exécution de sortir de la boucle immédiatement. Par exemple, le suivant lit des caractères jusqu'à ce que et à la fin de fichier est rencontrée:

while (true) {// lire une ligne de l'entrée objectinput >> ligne - // si une panne ou à la fin de fichier se produit ... si (cin.eof () || cin.fail ()) {// ... puis quittez le LoopBreak -} // processus de la ligne}

UN étiquette goto passe le contrôle à l'étiquette fournie. L'exemple de cassure au-dessus aurait pu être écrit comme suit:

while (true) {// lire une ligne de l'entrée objectinput >> ligne - // si une panne ou à la fin de fichier se produit ... si (cin.eof () || cin.fail ()) {// ... puis quittez le exitLabel de loopgoto -} // processus de la ligne} exitLabel: // contrôle continue ici

» » » » Le contrôle de flux en c ++ programmation