Visit Mozilla.org

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 continue est utilisée sans label, l'exécution de l'itération courante du bloc while, do..while ou for le plus profond est interrompue et reprend à l'itération suivante. À la différence de l'instruction break, continue ne met pas tout à fait fin à la boucle. Dans une boucle while, elle retourne à l'évaluation de la condition. Dans une boucle for, elle passe à l'instruction d'incrément.
  • Lorsque continue est utilisée avec un label, cela s'applique à l'instruction de boucle identifiée par ce label.

La syntaxe de l'instruction continue ressemble à ceci :

  1. continue
  2. 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/>");
   }