for

Beschreibung

Das for-Statement wiederholt die in Klammern nachfolgenden Anweisungen. Meistens wird eine Zählervariable verwendet, welche hochgezählt wird und die Schleife irgendwann beendet. Das for-Statement wird häufig zur Iteration über Arrays oder Listen von Daten oder Pins verwendet.

Syntax

for (initialization; condition; increment) { // Statement(s); }

Parameter

  • initialization: Passiert genau einmal am Anfang der Schleife.
  • condition: Wird bei jedem Schleifendurchlauf getestet. Wenn sie true ist, werden alle Statements in den Klammern ausgeführt und increment hochgezählt. Wenn die condition false ist, wird die Schleife abgebrochen.
  • increment: Wird hochgezählt, wenn die condition true ist.

Rückgabewert

Nichts.

Beispielcode

Beispielcode 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.

Das ergebnis am seriellen 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() {}

Beispielcode 2

Eine LED wird über einen PWM-Pin gedimmt.

int PWMpin = 10; // LED in Serie mit 470-Ohm-Widerstand auf Pin 10 void setup() { // Nichts } void loop() { // Wiederhole 255 Mal: for (int i=0; i <= 255; i++){ // Schreibe den Wert von "i" auf den LED-Pin analogWrite(PWMpin, i); // Warte 10 Millisekunden delay(10); } }

※ Anmerkungen und Warnungen:

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

Die for-Schleife in C++ ist deutlich ausgeprägter als in anderen Sprachen wie z.B. BASIC. Einige oder sogar alle der 3 Parameter können weggelassen werden, allerdings sind die Strichpunkte immer nötig. Alle 3 Parameter können mit beliebigen Variablen belegt werden und jeden Datentyp inklusive float nutzen. Die Beispiele unten zeigen die Verwendung einiger Spezialformen der for-Schleife.

Eine Multiplikation im increment generiert ein logarithmisches Verhalten:

for(int x = 2; x < 100; x = x * 1.5) { println(x); }

Gibt aus: 2,3,4,6,9,13,19,28,42,63,94

LED hoch- und runterdimmen in einer Schleife:

void loop() { // Globale Zählervariable "x" int x = 1; // Laufe über die Variable solange i größer -1 ist und zähle i um x hoch for (int i = 0; i > -1; i = i + x){ // Schreibe auf den LED-Pin analogWrite(PWMpin, i); if (i == 255) { x = -1; // Ändere die Richtung des Dimmens auf dem "Peek" // Warte 10 Millisekunden delay(10); } } }

Siehe Auch

ARDUINO KAUFEMPFEHLUNG

Arduino UNO R3
Arduino Starter Kit
Bitte Beachten: Dies sind Partnerschaftslinks. Wenn Sie die Komponenten über diese Links Kaufen, können wir eine Provision erhalten, ohne weitere Kosten für Sie. Wir Schätzen es.

※ UNSERE BOTSCHAFTEN