Looping tandis qu'une condition est vraie en C ++

Déclarations de la Direction générale vous permettent de diriger le flux de l'exécution d'un programme de C ++ vers le bas un chemin ou d'une autre. Ceci est une grande amélioration, mais pas assez pour écrire des programmes à pleine force encore.

Considérons le problème de la mise à jour de l'écran de l'ordinateur. Le PC typique doit mettre à jour plus d'un millier de pixels pour chaque ligne comme il peint une image de gauche à droite. Il répète ce processus pour chacun des mille et quelques lignes sur l'écran. Elle le fait en exécutant le même petit nombre d'instructions, des millions de fois - une fois pour chaque pixel.

La forme la plus simple d'instruction de boucle est la tandis que boucle. Voici ce que le tandis que boucle ressemble:

while (condition) {// ... exécutés de manière répétée tant que la condition est true}

La état est testé. Cette condition pourrait être si var> 10 ou si var1 var2 == ou toute autre expression que vous pourrait penser tant qu'il renvoie une valeur de vrai ou fausse. Si la condition est vrai, les déclarations dans les accolades sont exécutées. En rencontrant l'accolade fermée, les rendements C de contrôle au début, et le processus recommence.

Si la condition est fausse, le contrôle passe à la première déclaration après l'accolade fermée. L'effet est que le code du C dans les accolades est exécuté de manière répétée tant que la condition est vrai.

Si la condition était vrai la première fois, ce qui rendrait ce soit faux A l'avenir? Prenons l'exemple de programme suivant:

// WhileDemo - 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 - // boucle maintenant que beaucoup timeswhile (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-}

WhileDemo commence par l'extraction d'un nombre de boucles à partir de l'utilisateur, qu'il stocke dans la variable nLoopCount. Le programme exécute alors un tandis que boucle. La tandis que premiers tests nLoopCount. Si nLoopCount est supérieur à 0, le programme entre dans le corps de la boucle (la corps est le code entre les accolades), où il décrémente nLoopCount et par une délivre le résultat à l'écran.

Le programme revient ensuite au début de la boucle pour tester si nLoopCount est toujours positive.

Lorsqu'il est exécuté, le programme WhileDemo délivre les résultats présentés dans ce prochain extrait. Ici, un nombre de boucles de 5 est entré. Le résultat est que le programme boucle à cinq reprises, chaque fois en sortie un compte à rebours:


Entrez le nombre de boucles: 5Seuls les 4 boucles à goOnly 3 boucles à goOnly 2 boucles pour goOnly 1 boucles à 0 goOnly boucles à goPress Entrée pour continuer ...

Si l'utilisateur entre un comptage de boucle négative, le programme saute la boucle complètement. En effet, la condition spécifiée est jamais vrai, si le contrôle ne pénètre jamais dans la boucle. En outre, si l'utilisateur entre un très grand nombre, le programme boucle pendant une longue période avant d'avoir terminé.

Une version distincte, moins fréquemment utilisée de la tandis que boucle connue sous le nom faire # 133- tout semble identique à l'exception de la condition n'a pas été testé jusqu'à ce que le bas de la boucle:

faire {// ... l'intérieur de la boucle} while (condition) -

Parce que la condition n'a pas été testé jusqu'à la fin, le corps de la faire # 133- tout est toujours exécuté au moins une fois.

La condition est vérifiée uniquement au début de la tandis que boucle ou à la fin de la do # 133- tout boucle. Même si la condition cesse d'être vrai à un certain moment au cours de l'exécution de la boucle, le contrôle ne quitte pas la boucle jusqu'à ce que la condition est retesté.


» » » » Looping tandis qu'une condition est vraie en C ++