Casser/Continuer une boucle for externe (imbriquée)<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Si j'ai 2 boucles for imbriquées, comment puis-je rompre/continuer la boucle externe ?
exemple:
pour (i=0, i<10, i++,
pour (j=0, j<10, j++,
// Faire des choses
si (,
// Continuer avec le i suivant
); // fin si
); // termine la boucle interne
// Faire encore plus de choses
); // termine la boucle externe
Re : interrompre/continuer une boucle for externe (imbriquée)Merci pour la réponse.
Ce n'est pas tout à fait ce que je recherche.
Considère ceci:
Pour( je = 0, je <= 5, je++,
Pour( z = 0, z < 5, z++,
si (i== 3, Break());
Imprimer( "i=" || Car(i) || " & z=" || Car(z) )
);
Print( "OUTER i = " || Char (i));
);
Si j'exécute ce script, le i externe est imprimé.Le vrai problème ici est de 'continuer avec le i suivant', sans que la deuxième ligne d'impression (OUTER i = ...) ne soit imprimée.Existe-t-il un moyen simple de le faire ou dois-je simplement utiliser un booléen 'continueOuterLoop'?
Merci.
Solution booléenne :
Pour( je = 0, je <= 5, je++,
continueOuterLoop = 0 ;
Pour( z = 0, z < 5, z++,
if (i== 3, continueOuterLoop = 1; Break(); );
Imprimer( "i=" || Car(i) || " & z=" || Car(z) )
);
si (continueOuterLoop == 0,
Imprimer ( "OUTER i = " || Car (i))
)
);
Re : interrompre/continuer une boucle for externe (imbriquée)salut Jan,
essayez d'utiliser le Break(). le script suivant cessera de s'exécuter lorsque j'atteindrai 3.
Pour( je = 0, je <= 5, je++,
Pour( z = 0, z < 5, z++,
si (i >= 3, Break());
Imprimer( "i=" || Car(i) || " & z=" || Car(z) )
)
);
le prochain script sautera juste i=3 et continuera à i=4 et i=5.
Pour( je = 0, je <= 5, je++,
Pour( z = 0, z < 5, z++,
si (i== 3, Break());
Imprimer( "i=" || Car(i) || " & z=" || Car(z) )
)
);
veuillez consulter ce lien pour l'explication de l'utilisation de Break and while :
Répéter
Ron
Re : Interrompre/Continuer une boucle for externe (imbriquée)Salut Jan, ne pourrais-tu pas simplement ajouter un i++ au lieu de Break() pendant la boucle For interne ?
Vous pouvez également définir z=0 après i++, si vous souhaitez redémarrer la boucle For interne sans entrer dans la boucle For externe.
Par exemple:
For( i = 0, i <= 5, i++,
For( z = 0, z < 5, z++,
if (i== 3,
Print( "i=" || Char( i ) || " & z=" || Char( z ) );
i++; // I put the i++ after the print so that it prints i=3
);
);
Print ( "OUTER i = " || Char (i));
);