Guide JavaScript 1.5:Boucles:L'instruction continue
Un article de MDC.
[modifier] L'instruction continue
L'instruction continue peut être utilisée pour relancer une instruction while, do..while, for ou label.
- Lorsque
continueest utilisée sans label, l'exécution de l'itération courante du blocwhile,do..whileouforle plus profond est interrompue et reprend à l'itération suivante. À la différence de l'instructionbreak,continuene met pas tout à fait fin à la boucle. Dans une bouclewhile, elle retourne à l'évaluation de la condition. Dans une bouclefor, elle passe à l'instruction d'incrément. - Lorsque
continueest utilisée avec unlabel, cela s'applique à l'instruction de boucle identifiée par celabel.
La syntaxe de l'instruction continue ressemble à ceci :
-
continue -
continue label
Exemple 1
L'exemple suivant montre une boucle while avec une instruction continue qui est exécutée lorsque la valeur de i est trois. Par conséquent, ici n prend successivement les valeurs un, trois, sept et douze.
i = 0;
n = 0;
while (i < 5) {
i++;
if (i == 3)
continue;
n += i;
}
Exemple 2
Une instruction portant le label verifieietj contient une instruction portant le label verifiej. Si continue est rencontré, le programme interromp l'exécution de l'itération courante de verifiej et commence l'itération suivante. Chaque fois que continue est rencontré, checkj recommence jusqu'à ce que sa condition renvoie false. Lorsque c'est le cas, le reste de l'instruction verifieietj est exécuté, et verifieietj continue à boucler jusqu'à ce que sa condition renvoie false. Lorsque c'est le cas, le programme continue à l'instruction qui suit verifieietj.
Si continue portait un label verifieietj, le programme aurait continué directement à boucler sur l'instruction verifieietj.
verifieietj :
while (i < 4) {
document.write(i + "<br/>");
i += 1;
verifiej :
while (j > 4) {
document.write(j + "<br/>");
j -= 1;
if ((j % 2) == 0)
continue verifiej;
document.write(j + " est impair.<br/>");
}
document.write("i = " + i + "<br/>");
document.write("j = " + j + "<br/>");
}