Les boucles permettent de répéter des lignes de code jusqu’à ce qu’une condition soit remplie.
Leur écriture est souvent la même : une condition entre parenthèses et un code à exécuter dans les accolades.
While
var nombre = 1;
while (nombre <= 10) {
console.log(nombre);
nombre = nombre + 1;
}
Dans cette boucle while, le code entre accolades (afficher la variable nombre puis ajouter 1 à cette même variable) se répétera tant que la condition entre parenthèses (que la variable nombre soit inférieur ou égal à 10) n’est pas atteinte.
Voyons une autre manière d’organiser cette boucle :
var nombre = 1;
while (true) {
console.log(nombre);
if(nombre == 12) {
break;
}
nombre++;
}
Dans cette version de la même boucle, le true entre parenthèses indique de continuer la boucle tant que la variable est « vraie » (en principe à l’infini donc…).
Mais dans la boucle elle-même, on lui demande cette fois de vérifier si le nombre est égal à 12 (if – voir les conditions) et, si c’est le cas, de stopper la boucle (break;), si ce n’est pas le cas, on augmente la variable de 1 mais avec une autre notation (pour rappel, ++ augment la valeur de 1 – voir les variables).
Do/While
Ce type de boucle est en très grande partie la même chose qu’une boucle while à une différence près : comme la syntaxe est différente, on est certain ici que le code s’exécutera au moins une fois.
En effet, do/while exécute le code et arrête la boucle sauf si la condition est satisfaite tandis que while vérifie d’abord si la condition est satisfaite avant d’exécuter le code.
do {
var nombreAleatoire = Math.floor( Math.random() *10);
console.log("Est-ce que c'est " + nombreAleatoire + " ?");
} while( nombreAleatoire !== 3);
console.log( "J'ai trouvé !")
Nous demandons ici d’exécuter (do) l’affichage d’un phrase avec un nombre aléatoire entre zéro et 10 tant que (while) c’est différent de 3, dans le cas contraire, il affiche « J’ai trouvé ! ».
For
for (var i = 0; i < 3; i++) {
console.log("Cette boucle s'exécutera trois fois");
};
Dans ce type de boucle, il y a 3 expressions séparées par des ; :
- L’initialisation
Une variable qui servira de compteur. Par convention et facilité, on utilise très souvent i (comme initialisation).var i = 0;
- La condition
Définit le point où la boucle s’arrêtera. Par exemple, si nous voulons que la boucle s’exécute tant que la variable i est inférieure à 3 :i < 3;
- L’expression finale
l’instruction à exécuter à la fin de chaque itération de la boucle. Par exemple, si nous voulons augmenter la variable i de 1 chaque fois que la boucle s’est exécutée :i++
Très souvent, la boucle sert à parcourir les propriétés d’un tableau.
var tableauBoucle = ["premier","deuxieme","troisieme"];
for (var i = 0; i < tableauBoucle.length; i++) {
console.log("Cette boucle s'exécutera trois fois puisque le tableau a trois éléments");
};
(3) Cette boucle s’exécutera trois fois puisque le tableau a trois éléments
var listeDesNoms = ["Brad","Georges","Leonardo"];
for (var i = 0; i < listeDesNoms.length; i++) {
var nom = listeDesNoms[i];
console.log("Salut " + nom + " !");
};
Salut Brad !
Salut Georges !
Salut Leonardo !
For/in
Ce type de boucle sert à parcourir les propriétés d’un objet, non plus comme un tableau mais dans un ordre arbitraire.
Au lieu d’une initialisation, d’une condition et d’une condition finale, on initie une variable correspondant aux clés de notre objet, suivie de in et du nom de l’objet.
var nomComplet = {
"Prénom": "Emma",
"Nom" : "Stone"
};
for( var nom in nomComplet) {
console.log(nom + " : " + nomComplet[nom]);
}
Prénom : Emma
Nom : Stone
