while erfüllt den gleichen Zweck wie die ⇒for-Schleife.
Allerdings musst du dich selbst um das Hochzählen der Schleifenvariable kümmern.

Beispiel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | void setup() { Serial.begin(9600); // auf serielle Verbindung warten while (!Serial); delay(1000); int i = 0; while (i < 10) { Serial.println(i); i++; } } void loop() { // bleibt leer, Programm läuft nur einmal } |
Das Schaubild verdeutlicht den Ablauf einer while-Schleife:


Beispiel:
Gegenüberstellung for/while:
Eine LED soll dreimal blinken und dann zwei Sekunden pausieren:
Lösung mit for:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | int LED = 7; void setup() { pinMode(LED, OUTPUT); } void loop() { // die LED blinkt dreimal kurz for (int i = 1 ; i < 4; i++) { digitalWrite(LED, HIGH); delay(200); digitalWrite(LED, LOW); delay(200); } // zwei Sekunden Pause digitalWrite(LED, LOW); delay(2000); } |
Lösung mit while:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | int LED = 7; void setup() { pinMode(LED, OUTPUT); } void loop() { int i = 1; while(i < 4) { digitalWrite(LED, HIGH); delay(200); digitalWrite(LED, LOW); delay(200); // i um 1 erhöhen i++; } digitalWrite(LED, LOW); delay(2000); } |
Letzte Aktualisierung: