JavaScript : contrôle de la boucle
JavaScript fournit un contrôle complet pour
gérer les boucles et les instructions de commutation.
Il peut y avoir une situation lorsque vous devez sortir
d'une boucle sans atteindre son fond. Il peut également
y avoir une situation lorsque vous souhaitez ignorer
une partie de votre bloc de code et commencer la
prochaine itération de la boucle.
Pour gérer toutes ces situations, JavaScript fournit
des instructions de coupure et de poursuite.
Ces instructions sont utilisées pour sortir
immédiatement de toute boucle ou pour
commencer la prochaine itération de n'importe
quelle boucle, respectivement.
Instruction de rupture
L'instruction de rupture, qui a été brièvement présentée
avec l'instruction switch, est utilisée pour quitter
une boucle au début, en sortant des accolades bouclées.
Exemple :
<html>
<body>
<script type="text/javascript">
<!--
var x = 1;
document.write("Entrer dans la boucle <br /> ");
while (x < 20)
{
if (x == 5){
break; // Sortie de la boucle
}
x = x + 1;
document.write( x + "<br />");
}
document.write("Sortie de la boucle!<br /> ");
//-->
</script>
</body>
</html>
Résultat :
Entrer dans la boucle
2
3
4
5
Sortie de la boucle!
Exemple :
Cet exemple illustre l'utilisation d'une
instruction continue avec une boucle while.
Notez comment l'instruction continue est utilisée
pour sauter l'impression lorsque l'indice tenu
dans la variable x atteint 5
<html>
<body>
<script type="text/javascript">
<!--
var x = 1;
document.write("Entrer dans la boucle <br /> ");
while (x < 10)
{
x = x + 1;
if (x == 5){
continue; // Sauter au reste du corps de la boucle
}
document.write( x + "<br />");
}
document.write("Sortie de la boucle !<br /> ");
//-->
</script>
</body>
</html>
Résultat :
Entrer dans la boucle
2
3
4
6
7
8
9
10
Sortie de la boucle !
Utilisation des étiquettes pour contrôler le flux
À partir de JavaScript 1.2, une étiquette peut être
utilisée avec pause et continuer à contrôler le flux
plus précisément. Une étiquette est simplement un
identifiant suivi d'un colon (:) qui est appliqué à une
instruction ou à un bloc de code. Nous allons voir
deux exemples différents pour comprendre comment
utiliser les étiquettes avec pause et continuer.
Remarque - Les pauses de ligne ne sont pas
autorisées entre l'instruction "continue" ou "rupture"
et son nom d'étiquette. En outre, il ne devrait pas y
avoir d'autre instruction entre un nom d'étiquette et
une boucle associée.
Exemple 1
<html>
<body>
<script type="text/javascript">
<!--
document.write("Entrie dans la boucle!<br /> ");
outerloop: // C'est le nom de l'étiquette
for (var i = 0; i < 5; i++)
{
document.write("Outerloop: " + i + "<br />");
innerloop:
for (var j = 0; j < 5; j++)
{
if (j > 3 ) break ; // Quittez la boucle interne
if (i == 2) break innerloop; // Faire la même chose
if (i == 4) break outerloop; // Quittez la boucle externe
document.write("Innerloop: " + j + " <br />");
}
}
document.write("Sortie de la boucle !<br /> ");
//-->
</script>
</body>
</html>
Résultat :
Entrie dans la boucle!
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
Sortie de la boucle !
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
Sortie de la boucle !
Exemple 2 :
<html>
<body>
<script type="text/javascript">
<!--
document.write("Entrie dans la boucle!<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("Sortie de la boucle!<br /> ");
//-->
</script>
</body>
</html>
Résultat :
Entrie dans la boucle!
Outerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Outerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Outerloop: 2
Innerloop: 0
Innerloop: 1
Innerloop: 2
Sortie de la boucle!
Outerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Outerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Outerloop: 2
Innerloop: 0
Innerloop: 1
Innerloop: 2
Sortie de la boucle!
Aucun commentaire