Retour d'un niveau
Retour à l'accueil
Tant-que la condition est vraie, exécutes !
Tant que celle-ci est vraie (true), la boucle se répète. Dès que la condition est fausse (false), la boucle s'arrête, on sort de la boucle et le prochain bloc de code est exécuté.
while (condition) { instruction_1; instruction_2; instruction_3; }
Tant-que la condition est validée, la boucle se répète.
Attention : il faut s'arranger pour que en moment la boucle passe à false pour pouvoir en sortir sinon on crée une boucle infinie.
var number = 1; while (number < 10) { number++; } window.alert(number); // Affiche : « 10 »
Variable de boucle
var nicks = '', nick, proceed = true; while (proceed) { nick = prompt('Entrez un prénom :'); if (nick) { nicks += nick + ' '; // Ajoute le nouveau prénom ainsi qu'une espace juste après } else { proceed = false; // Aucun prénom n'a été entré, donc on fait en sorte d'invalider la condition } } alert(nicks); // Affiche les prénoms à la suite
La variable proceed est ce qu'on appelle une variable témoin, ou bien une variable de boucle. C'est une variable qui n'intervient pas directement dans les instructions de la boucle mais qui sert juste pour tester la condition. Nous avons choisi de la nommer proceed, qui veut dire « poursuivre » en anglais.
À chaque passage dans la boucle, un prénom est demandé et sauvé temporairement dans la variable nick. On effectue alors un test sur nick pour savoir si elle contient quelque chose, et dans ce cas, on ajoute le prénom à la variable nicks. Remarquez que nous ajoutons aussi un espace, pour séparer les prénoms. Si par contre nick contient la valeur null — ce qui veut dire que l'utilisateur n'a pas entré de prénom ou a cliqué sur Annuler — on change la valeur de proceed en false, ce qui invalidera la condition, et cela empêchera la boucle de refaire une itération.
Utilisation de break
Dans l'exemple des prénoms, nous utilisons une variable de boucle pour pouvoir arrêter la boucle. Cependant, il existe un mot-clé pour arrêter la boucle d'un seul coup. Ce mot-clé est break, et il s'utilise exactement comme dans la structure conditionnelle switch.
Voici ce que ça donne avec un break :
var nicks = '', nick; while (true) { nick = prompt('Entrez un prénom :'); if (nick) { nicks += nick + ' '; // Ajoute le nouveau prénom ainsi qu'une espace juste après } else { break; // On quitte la boucle } } alert(nicks); // Affiche les prénoms à la suite
Utilisation de continue
Cette instruction est plus rare, car les opportunités de l'utiliser ne sont pas toujours fréquentes.
continue, un peu comme break, permet de mettre fin à une itération, mais attention, elle ne provoque pas la fin de la boucle : l'itération en cours est stoppée, et la boucle passe à l'itération suivante.