Sortir d'une boucle infinie dans votre programme en langage C

Quand vous entrez dans les boucles de programmation en langage C, vous découvrirez les joies et les dreads de sans fin, ou infini, boucles. Ces boucles continuent toujours parce que le programmeur soit oublié d'inclure un moyen de sortir de la boucle ou la condition de sortie est tout simplement jamais rencontré. De toute façon, des boucles sans fin sont une douleur.

Mais parfois, un programme C contient une boucle sans fin sur le but. Ce type de construction peut sembler étrange, mais la base de nombreux programmes modernes est qu'ils sont assis et de spin pendant qu'ils attendent que quelque chose arrive. La boucle peut ressembler à ceci:

pour (-) {check_Keyboard () - check_Mouse () - check_Events () - check_System () -}

Notez que les conditions à l'intérieur des parenthèses après la pour mot-clé sont manquantes, ce qui est correct. Le résultat est une boucle sans fin dans laquelle les déclarations sont vérifiées à plusieurs reprises, l'un après l'autre: Le programme est à la recherche d'une activité quelque part. Lorsque l'activité est trouvée, le programme se déclenche et fait quelque chose d'intéressant. Mais la plupart du temps, le programme se trouve juste dans ce type de boucle, attendant que quelque chose se produise. (Le processeur typique mot peut effectuer des milliers de ces boucles comme il attend entre deux frappes que vous tapez.)

Entrez ce code source et enregistrer sur le disque. Puis compiler et exécuter le programme:




#include int main () {char ch-puts ("Programme Typing") - puts ("Type loin:") - pour (-) {CH = getchar () -} return (0) -}

Oui, vous pouvez taper. Et vous pouvez voir votre texte à l'écran. Mais comment voulez-vous arrêter?

Pour arrêter, il faut casser la boucle sans fin, qui peut être fait en appuyant sur Ctrl + C. Mais cela ne la façon dont vous voulez que vos programmes fonctionnent. Au lieu de cela, un état de sortie doit être définie pour la boucle, ce qui est le cas le pause mot-clé entre en jeu.

Les développeurs du langage C savaient que, dans certains cas, une boucle doivent être rompu en fonction des conditions qui ne pouvaient pas être prévus ou mis en place à l'intérieur du pour déclaration. Ainsi, dans leur sagesse, ils ont introduit la pause mot-clé.

Quoi pause fait est de quitter immédiatement une boucle (toute boucle en langage C, et pas seulement pour boucles). Lorsque l'ordinateur voit pause, il suppose simplement que la boucle est fait et continue comme si la condition de fin de la boucle a été atteint:

#include int main () {char ch-puts ("Programme Typing") - puts ("appuyez sur Type loin- '~' Pour quitter:") - pour (-) {CH = getchar () - si (ch = = '~') {pause -}} return (0) -}

Maintenant, une condition de sortie est défini. La si comparaison à la ligne 12 contrôles pour voir si un (tilde) ~ est entré. Dans l'affirmative, la boucle est interrompue par la pause déclaration.

Changez votre code source afin qu'il corresponde à ce qui vient d'affiche. Compiler et exécuter. Maintenant, vous pouvez arrêter le programme en tapant le caractère ~.

On notera que le si déclaration peut également être écrit sans les accolades:

si (ch == '~') percée

Cette ligne peut être un peu plus lisible que d'utiliser des accolades.


» » » » Sortir d'une boucle infinie dans votre programme en langage C