Comment fonctionne une boucle While ? Comment l'implémenter dans votre programme ?

La boucle while est une structure qui va éxecuter une partie du programme tant que la condition est vrai. A la différence avec la boucle for, pour le boucle while vous ne spécifier pas combien fois celle-ci va s’éxécuter; mais juste la conditon qui la fera arrêter.

La boucle While correspond plus à une structure if qui serait répétée tant que la condtion est vrai.

On va maintenant voir comment tous ceci fonctionne!

while (condition) {
  // Votre code à répéter
}

Attention au boucle infinie !

Avec une boucle while, c’est très facile de faire une boucle infinie qui va bloquer votre programme. Par exemple oublier d’incrémenter votre variable qui fait partie de la conditon, ou bien même une condition qui ne devient jamais vrai. On vous conseille donc de bien regarder que votre condition devienne fausse à un moment donné.

On va maintenant voir un exemple de la boucle while :

void setup(){
Serial.begin(9600); // On initialise le moniteur serie
int comptage = 0; // On initialise la variable qi va compter le nombre de passage dans la boucle.
while (comptage < 200) { // On éxécute la boucle tant que comptage est inférieur a 200 
  Serial.println(comptage); // On affiche la variable
  comptage+=1; // On augmente la variable de 1 à chaque passage dans la boucle
}
}
void loop(){
}

Dans ce programme, la boucle while s’arretera à 199 et pas à 200 car on a mis un inférieur stricte et pas stricte ou égale.

Il est possible d’écrire la boucle avant le while avec la fonction do While.

do..While

La fonction do while est la structure inverse que le while : la boucle se situe avant le while et la conditon se situe à la fin de la boucle.

do {
  // Votre Code
} while (condition); // La condition adaptée à votre programme

Voici un exemple de la fonction do while :

void setup(){
Serial.begin(9600);
int comptage = 0; // La variable de comptage
do {
  delay(50);          // Pause de 50 milli-seconde
  comptage+=1;  // On incrémente la variable
  Serial.println(comptage); // On affiche la variable
} while (comptage < 100); // On fait la boucle tant que le comptage est inférieur ou égale à 0
}
void loop(){
}

L’avantage que la boucle se situe avant la conditon est que la boucle est au moins testé une fois même si la conditon est fausse. De plus, même avec un inférieur stricte, la valeur comptage arrive quand même à 100 car la conditon est à la fin.