Cours de Javascript 2022

Chapitre 4 - Théorie 1 : La boucle While

Le petit mot while en programmation permet d'exécuter un bout de code en boucle un certain nombre de fois. Il fonctionne un peut comme un if, dans le sens où, on exécutera le code qui suivra dans son scope (ses accolades) que si la condition du while est à true. La grosse différence avec le if, c'est que, bien sûr, le code s'exécute en boucle premièrement, mais que du coup, forcément, dans son scope, il faut au moins une instruction qui permet de manipuler la condition, pour que quoi qu'il arrive, celle-ci puisse passer à false à force d'exécuter la boucle. On a donc :

Si on oublie une instruction qui permet de changer la condition, on va arriver dans le cas d'une boucle infinie, voilà pourquoi c'est important. La condition est bien sur une expression booléenne dont le résultat ne peut être que true ou false. Nous allons voir 2 boucles while, une bonne et une mauvaise :

Mauvaise boucle while :
let isLooping =true;
let i =0;
while(isLooping)
{
 i++
 alert("Hello World")
}

Le soucis de cette boucle, c'est que isLooping n'a aucun moyen de passer à false ! Donc la boucle tournera à l'infini, et là c'est la catastrophe, c'est le crash du programme. On doit donner une possibilité de sortie à notre programme !

Bonne boucle while :
let isLooping =true;
let i =0;
while(isLooping)
{
 i++
 alert("Hello World")
 if(i>=10)
 {
  isLooping=false;
 }
}

Ici on a une bonne boucle, car on a le contrôle dans le while de la condition. Lorsque que i deviendra supérieur ou égal à 10, isLooping passera à false grâce à notre nouveau if. Et la boucle s'arrêtera donc. Ici, donc, on a l'instruction alert("Hello World") qui va s'exécuter 10 fois.

Meilleure boucle while :

let i =0;
while(i<=10)
{
 i++
 alert("Hello World")
}

Ici, c'est la même chose qu'au dessus, mais en raccourcis. En effet, i<=10 est déjà une expression booléenne, qui sera manipulée par le i++, et donc naturellement, i commencera à 0, la condition sera vraie, jusqu'à ce qu'on arrive à i qui vaut 11, là la boucle s'arrête car 11<=10 est faux, on ne rentre plus dans le while.

Dernière petite subtilité, une fois la boucle while stoppée, on passe à la suite du code. Donc si on a :


let i =0;
while(i<=10)
{
 i++
 alert("Hello World")
}
alert("Fin de mon code")

Et bien ça va alert 10 fois de suite Hello World, ensuite ça va bien dire Fin de mon code, car on arrivera à la fin de la boucle, et donc on en sort, mais on continue de parcourir la suite du code comme toujours, ça ne change pas, comme avec un if, un appel de fonction, ou tout ce qu'on a vu précédemment !