Boucle for

Description

L'instruction for est utilisée pour répéter l'exécution d'un bloc d'instructions regroupées entre des accolades. Un compteur incrémental est habituellement utilisé pour incrémenter et finir la boucle. L'instruction for est très utile pour toutes les opérations répétitives et est souvent utilisées en association avec des tableaux de variables pour agir sur un ensemble de données ou broches.

Syntaxe

Il y a 3 parties dans l'entête d'une boucle for :

for (initialization; condition; incrementation) { //instruction(s)à exécuter; }

L'initialisation a lieu en premier et une seule fois. A chaque exécution de la boucle, la condition est testée; si elle est VRAIE, le bloc d'instructions et l'incrementation sont exécutés. puis la condition est testée de nouveau. Lorsque la condition devient FAUSSE, la boucle stoppe.

Exemple

Exemple 1

void setup() { Serial.begin(9600); Serial.println("====== TEST START ======"); for (int i = 1; i <= 5; i++) { Serial.print("Inside the FOR loop: i = "); Serial.println(i); } Serial.println("====== TEST END ========"); } void loop() {}

In the example above, the code in the loop will run, over and over again five times.

The result on Serial Monitor:

COM6
Send
====== TEST START ====== Inside the FOR loop: i = 1 Inside the FOR loop: i = 2 Inside the FOR loop: i = 3 Inside the FOR loop: i = 4 Inside the FOR loop: i = 5 ====== TEST END ========
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Example explained:

  • Initialization: int i = 1 sets a variable before the loop starts.
  • Condition: i <= 5 defines the condition for the loop to run. If the condition is true (i is less than or equal to 5), the loop will start over again. if it is false (i is greater than 5), the loop will end.
  • Increment: i++ increases a value each time the code block in the loop has been executed.

The above code is equivalent to:

void setup() { Serial.begin(9600); Serial.println("====== TEST START ======"); int i = 1; while ( i <= 5) { Serial.print("Inside the FOR loop: i = "); Serial.println(i); i++; } Serial.println("====== TEST END ========"); } void loop() {}

Exemple 2

// Eteint progressivement une LED en utilisant une broche PWM (impulsion) int PWMpin = 10; // LED en série avec une résistance de 1k sur la broche 10 void setup() { // aucune initialisation nécessaire } void loop() { // boucle incrémentant la variable i de 0 à 255, de 1 en 1 for (int i = 0; i <= 255; i++) { // impulsion de ratio HAUT/BAS fonction de i sur la broche 10 analogWrite(PWMpin, i); delay(10); // pause de 10ms } // fin de la boucle for }

※ Remarque:

Loop Forever

The following while loop loops forever:

for (;;) { // statement(s); }

How to escape the for loop

There are three ways to escape the for loop:

  • The condition of the for loop becomes false.
  • The execution of the code reaches a break statement inside the loop.
  • The execution of the code reaches a goto statement inside the loop, which jumps to a label located outside of the loop.

Others

La boucle for en C est beaucoup plus flexible que les boucles trouvées dans les autres langages de programmation, notamment le BASIC. Tout ou partie des trois élément de l'entête de la boucle peuvent être omis, les point-virgules sont toutefois obligatoires. De plus, les instructions pour l'initialisation, la condition ou l'incrémentation peuvent être n'importe quelle instruction valide en langage C, avec des variables sans rapports. Ces modes d'utilisation inhabituels de l'instruction for permettent de résoudre certains problèmes rares de programmation.

Voir Également

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.

※ OUR MESSAGES

  • We are AVAILABLE for HIRE. See how to hire us to build your project
  • Any suggestion, correction, and translation? please email us at ArduinoGetStarted@gmail.com, We appreciate it
  • We mainly keep improving the references in English. See English version of this page for the latest update.