Les ruptures de boucle

Pas d'erreur
Non, vous ne vous êtes pas trompé de page, ce n'est pas "Les ruptures de séquence", mais "Les ruptures de boucle", nous allons voir ici encore quelques "infâmes bidouilles" qui sont plus de la bricole que de la programmation mais qui existent tout de même, avant de passer à des choses plus intéressantes, et je vais essayer de faire du "moins compliqué", pour laisser tiédir vos cellules grises.

Etiquette
Voilà encore un truc boiteux, ce n'est pas une boucle à proprement parler mais ça peut servir à ça aussi, nous en avons déjà eu un échantillon avec SWITCH, en voici la syntaxe:

Etiquette:
programme
condition {break Etiquette;}
programme

Il faut noter que l'étiquette peut aussi se trouver plus bas dans le programme que la commande break ce qui redevient une rupture de séquence et plus une boucle, exemples:

...
x=0;
boucle:
x++;
if (x!=5) {break boucle;}
...

...
if (Math.random()>0.5) {break pile;}
document.write ("face !");
pile:
document.write ("pile !");
...

Le deuxième exemple est le cas typique d'une erreur de conception, en effet, si le nombre aléatoire retourné par la fonction random() est plus grand que 0.5, on saute bien en "pile" et on l'écrit, mais si par contre le nombre est plus petit, on écrit d'abord "face !", puis le programme continue et on écrit "pile !", c'est raté.

Il vaut mieux réfléchir AVANT d'écrire un programme et de bien choisir le type de boucle ou de condition dont on a besoin.


break
Avec les étiquettes ci-dessus nous avons vu le mot-clef break que j'ai volontairement passé sous silence car il sert aussi à sortir d'une boucle while ou for tout simplement en omettant de mettre une étiquette, syntaxe:

break

Voilà quelque chose de bien et de simple non ? Exemple:

for (x=0;x<5;x++)
{
  if (x==3) {break;}
  document.write(x);
}

Bien sur, c'est un exemple totalement idiot car il aurait suffit de compter de 0 à 2 pour obtenir le même effet, mais bon, si vous l'avez remarqué c'est que vous êtes en train de faire beaucoup de progrès. NB: Si j'avais écris d'abord document.write, puis fait le test ensuite, j'aurais compté de 0 à 3, ce genre d'astuce peut servir parfois dans un programme.

Attention ! Break permet de sortir d'une boucle, mais si vous en imbriquez plusieurs et que vous voulez sortir de toutes à la fois, il faudra utiliser break étiquette.

Quoi ! On peut imbriquer les boucles ? Ben évidemment, c'est même souvent une obligation dans un programme "normal" (pas forcément en Javascript), si l'on veut par exemple remplir un damier avec des nombres, il vous faudra 3 valeurs pour définir une case, la rangée, la colonne et le contenu de la case, pour initialiser un tel damier, deux boucles imbriquées font très bien l'affaire comme ceci:

echiquier=new Array(7,7) // Déclare un tableau de 8x8 cases
for (rangee=0;rangee<8;rangee++) // Boucle pour les rangées
{
  for (colonne=0;colonne<8;colonne++) // Boucle pour les colonnes
  {
    echiquier[rangee,colonne]=0; // Remplis les cases avec 0
  }
}

C'est un peu hors sujet, mais comme "break" est vachement simple, je n'ai pas voulu vous laisser vous endormir.


continue
Et oui, ça continue encore et encore, ce n'est que le début encore et encore... Et ça vas être très dur, syntaxe de continue:

continue

C'est un peu le contraire de break, ça sert aussi à sauter quelque chose dans les boucles for ou while, mais tout simplement en continuant la boucle à l'itération suivante, exemple:

for (x=0;x<5;x++)
{
  if (x==3) {continue;}
  document.write(x);
}

Là, on va obtenir les chiffres 0, 1 ,2, 4 (et pas 3), voilà c'est tout, étonnant non ?

Evidemment si j'avais placé document.write en dessus du test, je n'aurais rien eu de spécial.


Fini pour le ciment
Et voilà ! Vous savez maintenant beaucoup de choses sur le Javascript et pas mal de choses sur la programmation, à ce stade, vous devriez relire le guide depuis le début, les exemples vont vous permettre de "mettre les choses en place" dans votre tête et vous risquez d'être surpris de leur simplicité (qui n'était pas vraiment apparente en première lecture).

RetourInfo Suite

Dernière mise à jour de cette page: 04/09/2001, visiteurs: depuis le 6 avril 2002