L’instruction for permet de répéter des bloc de code. C’est la première étapes vers un code plus efficace et lisible.
Syntaxe de l’instruction for
L’instruction for prend, en entrée, un compteur dont on définit l’incrément et la condition de fin. Elle est souvent utilisée avec des listes de variables (array) pour effectuer des opérations sur les données qu’elles contiennent?
for(initialisation;condition d'arrêt;incrément){ <liste d'instructions qui se répètent>; }
Lors de l’initialisation, on défini un entier qui contiendra le compteur. La condition d’arrêt sera le résultat d’un test logique (généralement une valeur limite. Et l’incrément sera une opération qui définie comment évolue le compteur à chaque tour
Dans l’exemple suivant, le code va compter jusqu’à 10 en affichant chaque valeur sur le moniteur série:
- initialisation: nous initialisons un entier i à 0
- condition: la boucle s’arrêtera lorsque i aura atteint la valeur 10
- incrément: le compteur i évolue de 1 à chaque exécution
void setup() { Serial.begin(9600); } void loop() { for(int i=0;i<=10;i=i+1){ Serial.println(i); } delay(500); //delay for monitor display }
Dans l’exemple suivant, l’algorithme compte de 10 à 0.
for(int i=10;i>=0;i=i-1){ Serial.println(i); }
Pour la définition de l’incrément de la variable, il est possible de mettre n’importe quelle fonction. Exemple:
- i=2*i pour compter les nombre paire
- i=2*i+1 pour compter les nombre impaire
- i=pow(i,2) une fonction au carré
- i++ équivaut à i=i+1
- i– équivaut à i=i-1
L’initialisation peut être définie à l’extérieur de la boucle for. Dans ce cas, faites attention au nom et à l’initialisation de vos variables. Dans l’exemple suivant, le code va compter une première fois de 0 à 10 puis comptera de 3 à 10 les fois suivantes.
int index=0; void setup() { Serial.begin(9600); } void loop() { for(index;index<=10;index=index+1){ Serial.println(index); } index=3; delay(500); //delay for monitor display }
Autres syntaxes
Il est possible d’oublier les accolades si la boucle for ne contient qu’une seule instruction.
for(int i=0;i<=10;i=i+1) Serial.println(i);
Il est parfois intéressant d’exécuter plusieurs boucle en parallèle. On parle de boucles imbriquées. Dans l’exemple suivant, pour chaque exécution de la première boucle, la seconde va compter jusqu’à 5.
for(int i=0;i<=10;i=i+1){ for(int j=0;j<=5;j=j+1){ Serial.print(i); Serial.print(F("-")); Serial.print(j); } }
Ce qu’il faut retenir
- l’instruction for prend en entrée l’initialisation d’un compteur, une condition d’arrêt et une définition d’incrément
- les boucles for peuvent être imbriquées
- le bloc d’instruction se trouve entre accolade {}
- Si la liste d’instruction se trouve sur une seule ligne alors il n’y a pas besoin d’accolade
Assurez-vous de bien comprendre les arrays, les opérateurs logiques et incrément pour bien utiliser l’instruction for. Une fois cette instruction maitrisée, vous pourrez créer des algorithmes plus efficacement.
Sources
Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie