JavaScript offre un contrôle total sur la gestion des boucles et des instructions switch. Il peut arriver que vous deviez quitter une boucle sans atteindre son fond. Il peut également arriver que vous souhaitiez ignorer une partie d'un bloc de code et démarrer directement l'itération suivante.
Pour gérer ces situations, JavaScript fournit des instructions break et continue. Ces instructions sont utilisées pour quitter immédiatement n'importe quelle boucle ou démarrer l'itération suivante de la boucle.
instruction de pause :
L'instruction break, qui est simplement introduite avec l'instruction switch, est utilisée pour quitter la boucle plus tôt et rompre les accolades fermantes.
Exemple :
Cet exemple illustre comment utiliser l'instruction break avec une boucle while. Notez que la boucle passe initialement de x à 5, juste en dessous de l'instruction document.write(..), avec l'accolade fermante :
<script type="text/javascript"> <!-- var x = 1; document.write("Entering the loop<br /> "); while (x < 20) { if (x == 5){ break; // breaks out of loop completely } x = x + 1; document.write( x + "<br />"); } document.write("Exiting the loop!<br /> "); //--> </script>
Cela produira les résultats suivants :
Entering the loop 2 3 4 5 Exiting the loop!
Nous avons vu l'instruction break utilisée dans l'instruction switch.
continuer la déclaration :
continue indique à l'interpréteur de démarrer immédiatement la prochaine itération de la boucle et d'ignorer le reste du bloc de code.
Lorsqu'une instruction continue est rencontrée, le flux du programme sera immédiatement transféré vers la boucle pour vérifier l'expression. Si la condition reste vraie, alors l'itération suivante commencera, sinon le contrôle quittera la boucle.
Exemple :
Cet exemple illustre l'utilisation de l'instruction continue avec la boucle while. Veuillez noter que l'instruction continue est utilisée pour ignorer l'impression lorsque la variable exposant x atteint 5 :
<script type="text/javascript"> <!-- var x = 1; document.write("Entering the loop<br /> "); while (x < 10) { x = x + 1; if (x == 5){ continue; // skill rest of the loop body } document.write( x + "<br />"); } document.write("Exiting the loop!<br /> "); //--> </script>
Cela produira les résultats suivants :
Entering the loop 2 3 4 6 7 8 9 10 Exiting the loop!
Utilisez des balises pour contrôler le flux :
À partir de JavaScript 1.2, les balises peuvent être utilisées avec pause et continuer à contrôler le processus avec plus de précision.
La baliseest un simple identifiant suivi de deux points qui est appliqué à une instruction ou un bloc de code. Consultez deux exemples différents pour comprendre la répartition de l’utilisation des étiquettes et continuer.
Remarque : les sauts de ligne sont autorisés entre les instructions de continuation ou de rupture et leurs noms de balises. De plus, il ne doit y avoir aucune autre déclaration entre un nom de balise et la boucle associée.
Exemple 1 :
<script type="text/javascript"> <!-- document.write("Entering the loop!<br /> "); outerloop: // This is the label name for (var i = 0; i < 5; i++) { document.write("Outerloop: " + i + "<br />"); innerloop: for (var j = 0; j < 5; j++) { if (j > 3 ) break ; // Quit the innermost loop if (i == 2) break innerloop; // Do the same thing if (i == 4) break outerloop; // Quit the outer loop document.write("Innerloop: " + j + " <br />"); } } document.write("Exiting the loop!<br /> "); //--> </script>
Cela produira les résultats suivants :
Entering the loop! Outerloop: 0 Innerloop: 0 Innerloop: 1 Innerloop: 2 Innerloop: 3 Outerloop: 1 Innerloop: 0 Innerloop: 1 Innerloop: 2 Innerloop: 3 Outerloop: 2 Outerloop: 3 Innerloop: 0 Innerloop: 1 Innerloop: 2 Innerloop: 3 Outerloop: 4 Exiting the loop!
Exemple 2 :
<script type="text/javascript"> <!-- document.write("Entering the loop!<br /> "); outerloop: // This is the label name for (var i = 0; i < 3; i++) { document.write("Outerloop: " + i + "<br />"); for (var j = 0; j < 5; j++) { if (j == 3){ continue outerloop; } document.write("Innerloop: " + j + "<br />"); } } document.write("Exiting the loop!<br /> "); //--> </script>
Cela produira les résultats suivants :
Entering the loop! Outerloop: 0 Innerloop: 0 Innerloop: 1 Innerloop: 2 Outerloop: 1 Innerloop: 0 Innerloop: 1 Innerloop: 2 Outerloop: 2 Innerloop: 0 Innerloop: 1 Innerloop: 2 Exiting the loop!