Afin de mieux comprendre le flux d'exécution des boucles for imbriquées
Tout d'abord, nous devons savoir que l'imbrication de boucles for signifie généralement que la couche externe s'exécute une fois et que la couche interne exécute tout
Nous utilisons le code suivant pour interpréter
#include<stdio.h>
int main(){
for(int i=0;i<5;i++){
i++;
for(int j=0;j<3;j++){
printf("%d",j);
if(i>3)break;
}
}
return 0;
}
Entrez la boucle externe i=0 i++
Entrez dans la boucle interne j=0, sortie 0 , puis i=1, puis continuez vers la sortie j=1, j=2 , et enfin i=1, n'exécutez pas break, sautez hors de la boucle externe
Retour à la boucle externe à ce moment i=1 Remarque : Ici, le i++ de la boucle externe doit être exécuté en premier
Exécutez à nouveau i<5, à ce moment i=2 puis exécutez i++ dans la quatrième ligne
Entrez dans la boucle interne j=0, sortie 0 , puis i=3, puis continuez vers la sortie j=1, j=2 , et enfin i=3, n'exécutez pas break, sautez hors de la boucle externe
Retour à la boucle externe à ce moment i=3 Remarque : Ici, le i++ de la boucle externe doit être exécuté en premier
Exécutez à nouveau i<5, à ce moment i=4 puis exécutez i++ dans la quatrième ligne
Entrez dans la boucle interne j=0, sortie 0 , puis i=5 et continuez à exécuter if(i>3)break ; sortez de la boucle externe
Retour à la boucle externe à ce moment i=5 Remarque : Ici, le i++ de la boucle externe doit être exécuté en premier
Exécutez ensuite i<5 puis i=6 pour sortir de la boucle externe (la boucle externe se termine, la boucle interne ne doit pas être exécutée)
La sortie finale est 012 012 0
Si vous avez une certaine base, vous pouvez voir le schéma de raisonnement suivant