Instruction break et continue en langage C
Instruction break
Supposons que nous écrivions un programme pour rechercher un nombre particulier parmi 1000 numéros. À la dixième itération, nous avons trouvé le nombre souhaité. À ce stade, nous ne voulons pas traverser les 990 numéros restants, mais nous voulons que la boucle se termine et continuer avec l’exécution de l’instruction qui suit la boucle. C'est ici que la déclaration de break entre en scène.
Lorsqu'une instruction break est rencontrée dans la boucle, le contrôle du programme quitte immédiatement la boucle et reprend l'exécution avec l'instruction suivant la boucle.
L'instruction break est presque toujours utilisée avec l'instruction if ... else à l'intérieur de la boucle.
Exemple 1 :
#include < stdio.h> int main(void){ int i; for(i=0;i < 10;i++){ if( i==5 ){ break; // quitter la boucle } printf("i = %d \n",i); } printf("bye"); return 0; }
i = 1
i = 2
i = 3
i = 4
bye
Dans la 6ème itération, la valeur de i devient 5. La condition (i == 5) est vérifiée car elle est vraie. L'instruction break est exécutée et le contrôle sort de la boucle for pour exécuter l'instruction qui la suit. S'il n'y avait pas eu de déclaration de break, cette boucle aurait été exécutée 9 fois.
La déclaration de break dans une boucle imbriquée
Lorsque l'instruction break est utilisée à l'intérieur d'une boucle imbriquée, elle ne provoque la sortie que de la boucle la plus interne.
Exemple 2 :
#include < stdio.h> int main(void){ int i,j; for(i=0;i < 10;i++){ printf("i = %d \n",i); for(j=0;j< 4;j++){ if( j==2 ){ break; // quitter la boucle interne } printf("j = %d \n",j); } } printf("bye"); return 0; }
j = 0
j = 1
i = 1
j = 0
j = 1
i = 2
j = 0
j = 1
bye
Instruction continue
L'instruction continue ignore l'itération actuelle de la boucle et continue à l'itération suivante.
Lorsque l'instruction continue est rencontré dans une boucle, toutes les déclarations après l'instruction continue sont omis et la boucle continue avec la prochaine itération.
L'instruction continue est presque toujours utilisée avec l'instruction if ... else à l'intérieur de la boucle.
Lorsque l'instruction continue est rencontrée dans la boucle while et do while, le contrôle est transféré à la condition de test, puis la boucle continue. alors que dans la boucle for lorsque l'instruction continue est trouvée, le contrôle est transféré à l'expression de mise à jour, puis la condition est testée.
Exemple 3 :
#include < stdio.h> int main(void){ int i; for(i=0;i < 10;i++){ if( i==5 ){ continue; // passer à l'itération suivante } // cette instruction est ignorée lorsque i==5 printf("i = %d \n",i); } printf("bye"); return 0; }
i = 1
i = 2
i = 3
i = 4
i = 6
i = 7
i = 8
i = 9
bye
Exemple 4 :
#include < stdio.h> int main(void){ int i,j; for(i=0;i < 2;i++){ printf("i = %d \n",i); for(j=0;j< 4;j++){ if( j==2 ){ continue; // quitter la boucle interne } // cette instruction est ignorée lorsque j==2 printf("j = %d \n",j); } } printf("bye"); return 0; }
j = 0
j = 1
j = 3
i = 1
j = 0
j = 1
j = 3
i = 2
j = 0
j = 1
j = 3
bye