Comment utiliser la boucle en C ++

La forme la plus courante de la boucle en C ++ est le pour boucle. La pour boucle est préférée à la suite de base tandis que boucle car il est généralement plus facile à lire (il n'y a vraiment pas d'autre avantage).

La pour boucle a le format suivant:

pour (incrément conditionnalité initialization-) {// ... corps de la boucle}

La pour boucle est équivalente à ce qui suit tandis que boucle:

{initialisation-tout (conditionnel) {{// ... corps de la boucle}}} increment-

Exécution de la pour la boucle commence par clause d'initialisation, qui a obtenu son nom parce qu'il est normalement où les variables de comptage sont initialisés. La clause d'initialisation est exécutée une seule fois, lorsque le pour boucle est d'abord rencontré.

L'exécution se poursuit avec le clause conditionnelle. Cette clause fonctionne exactement comme la tandis que boucle: Tant que la clause conditionnelle est vrai, la pour boucle continue à exécuter.

Après le code dans le corps de la boucle fin de l'exécution, le contrôle passe à la clause d'augmentation avant de revenir pour vérifier la clause conditionnelle - répétant ainsi le processus. La clause d'augmentation abrite normalement les déclarations d'auto-incrémentation ou autodecrement utilisés pour mettre à jour les variables de comptage.

La pour la boucle est mieux comprise par l'exemple. Ce qui suit ForDemo1 programme est rien de plus que la WhileDemo converti pour utiliser la pour boucle construction:

// ForDemo1 - entrée un nombre de boucles. Loop While // sortie astring nombre de fois arg. # Include #comprendre #comprendre using namespace main (int nNumberofArgs, char * pszArgs []) {// entrée du countint boucle nLoopCount-cout de std-int lt; lt; "Entrez le nombre de boucles:« -cin >> nLoopCount - // compter jusqu'à la boucle compter limitfor (- nLoopCount> 0 -) {nLoopCount = nLoopCount - 1-cout lt; lt; "Seulement" lt; lt; nLoopCountlt; lt; "Boucles d'aller" lt; lt; endl -} // attend que l'utilisateur est prêt avant de terminer le programme // pour permettre à l'utilisateur de voir le resultscout de programme lt; lt; "Appuyez sur Entrée pour continuer ..." lt; lt; endl-cin.ignore (10, ' n') - cin.get () - retourner 0-}

Le programme lit une valeur de la flèche dans la variable nloopCount. La pour qui commence comparant nloopCount La commande passe à 0. dans le pour boucle si nloopCount est supérieur à 0. Une fois à l'intérieur de la pour boucle, le programme décrémente nloopCount et affiche le résultat. Cela fait, le programme retourne à la pour contrôle de la boucle.

Contrôle passe à la ligne suivante après la pour boucle dès que nloopCount a été décrémenté à 0.

Les trois sections d'un pour boucle peut être vide. Une initialisation vide ou de la section minimum ne fait rien. Une section de comparaison vide est traité comme une comparaison qui retourne vrai.


Ce pour boucle a deux petits problèmes. Tout d'abord, il est destructive, en ce sens qu'il modifie la valeur de nloopCount, “ détruisant ” la valeur d'origine. Deuxièmement, cette pour boucle compte à rebours à partir de grandes valeurs à des valeurs plus petites. Ces deux problèmes sont traités par addition d'une variable de comptage dédié à la pour boucle. Voici à quoi il ressemble:

// ForDemo2 - entrée un nombre de boucles. Loop While // sortie astring nombre de fois arg. # Include #comprendre #comprendre using namespace main (int nNumberofArgs, char * pszArgs []) {// entrée du countint boucle nLoopCount-cout de std-int lt; lt; "Entrez le nombre de boucles:« -cin >> nLoopCount - // compter jusqu'à le nombre de boucles limitfor (int i = 1- i lt; = nLoopCount- i ++) {cout lt; lt; «Nous avons fini" lt; lt; ILT; lt; "Boucles" lt; lt; endl -} // attend que l'utilisateur est prêt avant de terminer le programme // pour permettre à l'utilisateur de voir le resultscout de programme lt; lt; "Appuyez sur Entrée pour continuer ..." lt; lt; endl-cin.ignore (10, ' n') - cin.get () - retourner 0-}

Cette version modifiée de ForDemo boucles même comme avant. Au lieu de modifier la valeur de nLoopCount, toutefois, cette ForDemo2 version utilise une nouvelle variable compteur.

Ce pour boucle déclare une variable compteur je et est initialisée à 0. Il compare ensuite ce compteur variable nLoopCount. Si je est inférieur à nLoopCount, la commande passe à l'instruction de sortie dans le corps de la pour boucle. Une fois que le corps a terminé l'exécution, le contrôle passe à la clause d'incrémentation où je et est incrémenté par rapport à nLoopCount à nouveau, et ainsi de suite.

Le tableau suivant montre un exemple de sortie du programme:

Entrez le nombre de boucles: 5Nous avons terminé 1 loopsWe've terminé 2 loopsWe've terminé 3 loopsWe've terminé 4 loopsWe've terminé 5 loopsPress Entrée pour continuer ...

Lorsqu'il est déclaré dans la partie de l'initialisation du pour boucle, la variable d'indice est connu que dans le pour boucle elle-même. Nerdy programmeurs C ++ disent que la portée de la variable est limitée à la pour boucle. Dans le ForDemo2 exemple donné, la variable je est pas accessible à partir de la retour déclaration parce que cette déclaration ne sont pas dans la boucle.


» » » » Comment utiliser la boucle en C ++