Programmer l’Arduino – Les boucles

image_pdfimage_print

Vous pouvez rencontrer des situations, quand un bloc de code doit être exécuté plusieurs fois. En général, les instructions sont exécutées séquentiellement.

Dans tous les langages de programmation, les boucles sont utilisées pour exécuter un ensemble d’instructions plusieurs fois jusqu’à ce qu’une condition particulière soit satisfaite.

 
 
Une séquence d’instructions est exécutée jusqu’à ce qu’une condition soit vraie. Cette séquence d’instructions à exécuter est à l’intérieur des accolades {  } appelées le corps de la boucle. Après chaque exécution du corps de la boucle, la condition est vérifiée, et si elle est trouvée « true », le corps de la boucle est exécuté à nouveau. Lorsque la vérification retourne « false », le corps de la boucle ne sera pas exécuté.

Le langage de programmation Arduino fournit différents façon pour déclarer des boucles.

Description des différents types de boucles
La boucle while
Répète une instruction ou un groupe d’instruction jusqu’à ce qu’une condition donnée est vraie. Il teste la condition avant d’exécuter le corps de la boucle.
La boucle for
Exécute une séquence d’instructions plusieurs fois avec  un code abrégé.
La boucle do…while
Il ressemble à la déclaration while, sauf qu’elle teste la condition à la fin du corps de la boucle.
Les boucles imbriquées
Vous pouvez utiliser une ou plusieurs boucles à l’intérieur d’une autre boucle while, for ou do..while

 

La boucle while

Tandis que la boucle while peut être traitée comme une boucle de contrôle. Il est complété en 3 étapes.

Initialisation de la variable (par exemple, var = 0;)
Condition (par exemple while(var < 100))
Incrémentation ou décrémentation de la variable (var ++ ou var –)

La syntaxe :

initialisation de la variable ;

while (condition)
{
    bloc d'instructions;
    incrementation ou decrementation de la variable; 
}
Exemple:
var = 0;

while(var < 100){
  // faire quelque chose 100 fois
  var++;
}

 
 

La boucle for

La boucle for est utilisé pour exécuter un ensemble d’instructions de façon répétitive jusqu’à ce qu’une condition particulière soit satisfaite. La syntaxe général est,

for(initialisation; condition ; incrementation/decrementation)
{
   Bloc d'instructions;
}

Dans la boucle for nous avons exactement deux points-virgules, un après l’initialisation et la deuxième après la condition. Dans cette boucle, nous pouvons avoir plus d’une initialisation ou une incrémentation / décrémentation séparés par des virgules. Une boucle for ne peut avoir qu’une seule condition.

Exemple :

for(i= 1;i<= 7;i++) {
   //bloc d'instructions sera exécuté 6 fois
}

 

La boucle do…while

Dans certaines situations, il est nécessaire d’exécuter le corps de la boucle avant de tester la condition. Ces situations peuvent être traitées avec la boucle do…while. Do permet d’évaluer le corps de la boucle en premier, la condition est vérifiée en utilisant l’instruction while. Le format général de la boucle do…while est,

do
{
 ....
 .....
}
while(condition)
Exemple:
do
{
  delay(50);          // attendre que les capteurs se stabilisent
  x = readSensors();  // vérifie les capteurs

} while (x < 100);

 
 

Les boucles imbriquées

Nous pouvons également avoir des boucles imbriquées, c’est-à-dire une boucle à l’intérieur d’une autre boucle. La syntaxe de base est,

for(initialization; condition; increment/decrement)
{
  for(initialization; condition; increment/decrement)
     {
        statement ;
     }
}
Exemple:
for(i= 1;i<= 7;i++) {
   //bloc d'instructions sera exécuté 6 fois
   for(i = 0;i <= 98;i++) {
      //bloc d'instructions sera exécuté 99 fois
   }
}

 

La boucle infinie

Une boucle devient une boucle infinie si une condition ne devient jamais fausse, elle est toujours vraie. ou vous pouvez faire une boucle infinie en laissant l’expression conditionnelle vide.

for (;;) {
   // bloc d'instructions
}

Lorsque l’expression conditionnelle est absente, elle est supposée vraie. Vous pouvez avoir une expression d’initialisation et d’incrémentation, mais les programmeurs Arduino utilisent plus souvent la syntaxe for (;;) pour signifier une boucle infinie.

Vous pouvez terminer une boucle infinie en appuyant sur les touches Ctrl + C.

 

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *