fbpixel
Étiquettes : ,
0
(0)

L’instruction while est la structure conditionnelle qui permet de créer une boucle sur une condition. Elle se retrouve dans tous les langages de programmation. Elle permet d’exécuter en boucle un bloc de code tant qu’une condition est réalisée.

Syntaxe de l’instruction while

L’instruction prend, en entrée, une condition sous forme d’une variable booléenne et exécute un bloc d’instructions en boucle tant que cette condition est vraie. Si la condition reste toujours vraie, le code qui suit le bloc while ne sera jamais exécuté. Faites bien attention à mettre à jour votre condition.

  while(condition){
    <liste d'instructions tant que condition=true>;
    <mise à jour de la condition>;
  }

Exemple d’un code qui compte jusqu’à 10:

int val=0;
void setup() {
  Serial.begin(9600);
}

void loop() {
  while(val<=10){
    Serial.println(val);
    val++;
  }
}

Un booléen est un type de variable égale à true( 1-vrai) ou false(0-faux). Dans le langage C(Arduino), les variables booléennes s’initialisent à l’aide du mot clé bool ou boolean. Un booléen peut être obtenu de différentes manières

  • Le résultat d’un test logique <,>,==,!=,!
 condition = variable == 10;    // variable égale à 10? 
 condition = temperature>30;   // temperature est supérieure à 30 
 condition = vitesse <= 100    // vitesse inférieure ou égale à 100 
 condition = !true // condition égale  non vraie (faux) 
   
  • Le résultat de plusieurs conditions
condition=(temperature>30) && (vitesse<20);
  • Le résultat d’une fonction
bool test(int val){
  //retourne vraie si la valeur est supérieur à 200
  return val>200;
}

Il est bon de noter que la fonction en entrée de l’instruction s’exécute à chaque boucle.

int val=0;
void setup() {
  Serial.begin(9600);
}

void loop() {
  while(condition()){
    Serial.println(val);
  }
  delay(10);//sanity delay
}

bool condition(){
  val++;
  return val<=10;
}


Autres syntaxes

Une autre version de l’instruction while existe: do..while qui est en fait une toute autre instruction. La différence principale est qu’elle est exécutée au moins une fois.

Le code suivant compte jusqu’à 10. Le bloc do..while doit être mis dans la fonction setup sinon la variable val s’incrémentera à l’inifini. En effet, comme le bloc dowhile est exécuté au moins une fois, val s’incrémentera une fois à chaque exécution de loop().

int val = 0;
void setup() {
  Serial.begin(9600);
  do{
    Serial.println(val);
    val++;
  } while(val<=10);
}

void loop() {
  delay(10);//sanity delay
}

En conclusion, ce qu’il faut retenir

  • le bloc while prend en entrée une condition représentée par une variable booléenne
  • l’instruction en entrée de la boucle while est exécuté à chaque boucle
  • la condition se trouve entre parenthèse
  • le bloc d’instruction se trouve entre accolade {}
  • L’instruction do..while est exécutée au moins une fois, contrairement à while

Sources

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?