Der for-Befehl wird verwendet um Anweisungen für eine bekannten Anzahl von Durchläufen zu wiederholen.
Wie oft dieser Block durchlaufen wird, legen Sie mit einem Zähler fest. Der ist nichts anderes als eine Variable, die am einfachsten inkrementiert (erhöht) oder dekrementiert (erniedrigt) wird.
Der Kopf der for-Anweisung besteht aus drei Teilen, die wie alle anderen Anweisungen auch, durch ein Semikolon getrennt werden:
Aufbau der for-Schleife
for (Initalisierung; Bedingung; Ausdruck) { // Anweisungen // Der Teil zwischen den Klammern wird als Schleifenkörper bezeichnet }
Initialisierung
An dieser Stelle wird eine Variable initialisiert wird. Sie fungiert später als Zähler.
Bedingung
Die Schleife überprüft die Bedingung vor dem Eintritt in die Schleife.
Bei jedem Durchlauf wird geprüft, ob die die Bedigung erfüllt ist. Ist die Bedingung erfüllt wird die Schleife weiter ausgeführt.
Ist sie FASLE wird die Schleife verlassen.
Ausdruck
Dieser Teil beinhaltet den Ausdruck, der als Ergebnis einen erhöhten oder verringerten Wert ausgibt. Es ist dieselbe Variable, im ersten Teil des Schleifenkopfs initialisiert wurde. Sie kann z. B. über einen Inkrement- oder Dekrementoperator die Variable erhöht oder erniedrigt werden.
Flussdiagramm while Schleife
Einfache for Schleife
Code-Beispiel
1 2 3 4 5 | for (int i = 0 ; i < 6; i++ ) { Serial.println(i); // Hier können auch weitere Anweisungen folgen } |
Ausgabe serieller Monitor
1
2
3
4
5
Was passiert?
Im diesem Beispiel startet die Zählvariable i mit einem Wert von 0 und erhöht sich bei jedem Durchlauf um 1, solange der i < 6 wahr (TRUE) ist. Erreicht i einen Wert von 6 ändert der Ausdruck i< 6 seinen Wert. Er wechselt von TRUE auf FALSE, da die Bedingung nun nicht mehr erfüllt ist. Die Befehle innerhalb der Schleife werden nun nicht mehr bearbeitet. Die Schleife wird verlassen.
For-Schleifen können vorwärts, rückwärts oder auch in Schritten zählen:
Rückwärts zählende for Schleife
Code-Beispiel
1 2 3 4 5 6 | for (int i = 6; i > 0; i--) { Serial.println(i); // Hier können auch weitere Anweisungen folgen } } |
Ausgabe serieller Monitor
5
4
3
2
1
Was passiert?
Im diesem Beispiel startet die Zählvariable i mit einem Wert von 6 und erniedrigt sich bei jedem Durchlauf um 1, solange die Bedingung i > 0 wahr (TRUE) ist. Erreicht i einen Wert von kleiner 0 ändert der Ausdruck i > 0 seinen Wert. Er wechselt von TRUE auf FALSE, da die Bedingung nun nicht mehr erfüllt ist. Die Befehle innerhalb der Schleife werden nun nicht mehr bearbeitet. Die Schleife wird verlassen.
Schrittweise zählende for-Schleife
Code-Beispiel
1 2 3 4 | for (int ungerade = 1; ungerade < 11; ungerade = ungerade + 2) { Serial.println(ungerade); } |
Ausgabe serieller Monitor
3
5
7
9
Was passiert?
Im diesem Beispiel startet die Zählvariable i mit einem Wert von 1 und erhöht sich bei jedem Durchlauf um 2, solange bis die Bedingung i < 11 wahr (TRUE) ist. Wird i größer 11 ändert der Ausdruck i < 11 seinen Wert. Er wechselt von TRUE auf FALSE, da die Bedingung nun nicht mehr erfüllt ist. Die Befehle innerhalb der Schleife werden nun nicht mehr bearbeitet. Die Schleife wird verlassen.