Arduino-Sprache: While-Schleife

Wie funktioniert eine While-Schleife? Wie implementiert man sie in Ihr Programm?

Die While-Schleife ist eine Struktur, die einen Teil des Programms ausführt, solange die Bedingung erfüllt ist. Anders als bei der For-Schleife geben Sie bei der While-Schleife nicht an, wie oft sie ausgeführt wird, sondern nur die Bedingung, die sie stoppt.

Die While-Schleife ähnelt eher einer If-Struktur, die sich wiederholt, solange die Bedingung erfüllt ist.

Sehen wir uns nun an, wie das alles funktioniert!

while (Bedingung) {
/ Dein zu wiederholender Code
}

Vorsicht vor der Endlosschleife!

Mit einer While-Schleife kann es leicht zu einer Endlosschleife kommen, die Ihr Programm blockiert. Beispielsweise kann es passieren, dass Sie vergessen, die Variable, die Teil der Bedingung ist, zu erhöhen, oder dass die Bedingung nie erfüllt wird. Wir empfehlen Ihnen daher, sorgfältig zu prüfen, ob Ihre Bedingung irgendwann falsch wird.

Wir sehen uns nun ein Beispiel für die While-Schleife an:

void setup(){
Serial.begin(9600); // Initialisiere den seriellen Monitor.
int count = 0; // Initialisiere die Variable, die die Anzahl der Schleifendurchläufe zählt.
while (count < 200) { // Führe die Schleife aus, solange count kleiner als 200 ist.
Serial.println(count); // Zeige die Variable an.
count+=1; // Erhöhe die Variable bei jedem Schleifendurchlauf um 1.
}
}
void loop(){
}

In diesem Programm stoppt die While-Schleife bei 199 und nicht bei 200, da wir ein striktes Kleiner-gleich-Wert-Verhältnis festgelegt haben.

Mit der Funktion „do While“ kann die Schleife vor der While-Schleife geschrieben werden.

do..While

Die Funktion „do while“ weist die entgegengesetzte Struktur zur Funktion „while“ auf: Die Schleife steht vor der Funktion „while“ und die Bedingung steht am Ende der Schleife.

do {
// Dein Code
} while (Bedingung); // Die Bedingung, die zu deinem Programm passt

Hier ist ein Beispiel für die Funktion „do while“:

void setup(){
Serial.begin(9600);
int count = 0; // Die Zählvariable
do {
delay(50); // 50 Millisekunden pausieren
count+=1; // Variable erhöhen
Serial.println(count); // Variable anzeigen
} while (count < 100); // Schleife, solange der Zählwert kleiner oder gleich 0 ist
}
void loop(){
}

Der Vorteil der Schleife vor der Bedingung besteht darin, dass die Schleife zumindest einmal getestet wird, auch wenn die Bedingung falsch ist. Auch bei einem strikten Kleiner-als-Wert erreicht der Zählwert immer noch 100, da die Bedingung am Ende steht.