Eine Schleife wird verwendet um Wiederholungen im Programm zu realisieren. Diese Schleifen laufen dann gemäß einer bestimmten Bedingung oder einer festgelegten Anzahl durch.

Es gibt unterschiedliche Schleifen, die jeweils für unterschiedliche Anwendungen verwendet werden.


for-Schleife

Falls man bereits weiß, wie häufig die Anweisungen in der Schleife wiederholt werden sollen verwendet man am besten die for-Schleife.

Beispiel:

for(int i = 0; i < 2; i = i + 1)
{
    Serial.println(i);
}

Erklärung der for-Schleife:

Die Variable i ist eine Kurzschreibweise für index. Häufig werden einzelne Buchstaben in Schleifen für die Schleifenvariable genutzt. Falls man nun eine weitere Schleife in der for-Schleife verwenden möchte wählt man den nächsten Buchstaben für die Schleifenvariable, also j.

In der ersten Zeile handelt es sich um den Kopf der for-Schleife. Innerhalb der runden Klammern sind drei „Abschnitte“, die die for-Schleife steuern, getrennt durch zwei Semikolons:

  • Startanweisung:
      • Die einmalig durchgeführte Startanweisung, in der die sogenannte Schleifenvariable i(ndex) den Wert 0 bekommt. 
  • Laufbedingung:
      • Die Laufbedingung, die vor jedem Durchlauf der Schleife untersucht wird. Falls i(ndex) kleiner als 2 ist, wird die Schleife durchlaufen. Falls die Bedingung nicht wahr ist, wird die Schleife verlassen und das Programm führt alles weitere nach der Schleife aus.
  • Änderung danach:
      • Die Anweisung zur Änderung der Schleifenvariable nach jedem Durchlauf.


Ablauf:

  1. i wird auf 0 gesetzt
  2. Es wird geguckt, ob i kleiner als 2 ist -> wahr
  3. Der Anweisungsblock zwischen den geschweiften Klammern wird ausgeführt
    1. Er gibt 0 aus.
  4. Er erhöht i um 1. (i = 0 + 1, somit ist i jetzt 1)
  5. Schritt 2 wird wiederholt, es wird also geguckt ob i kleiner als 2 ist -> wahr
  6. Der Anweisungsblock wird ausgeführt
    1. Er gibt 1 aus
  7. Er erhöht i um 1 (i ist jetzt 2)
  8. ist i kleiner als 2? -> falsch
  9. Er geht aus der Schleife und der Rest des Programms läuft weiter

Anmerkung: Die Variable i ist nur lokal in der Schleife verfügbar. Außerhalb der Schleife kann man so die Variable i nicht benutzen.




while, do-while-Schleife

Falls sich erst im Verlauf des Programms herausstellt, ob und wie häufig die Anweisungen wiederholt werden sollen, dann nutzt man am besten die while-Schleife oder die do-while-Schleife.  

Der einzige Unterschied zwischen den beiden letztgenannten Schleifen: Bei der do-while-Schleife werden die Anweisungen mindestens einmal durchgeführt, bei der while-Schleife gegebenenfalls niemals.


while-Schleife:

while (Bedingung)
{
     // Anweisungen
}


int i = 0;

while (i < 2)
{
    Serial.println(i);
    i = i + 1;
}




do-while-Schleife:
do
{
    //Anweisungen
} while (Bedingung);


int i = 0;

do
{
    Serial.print(i);
    i = i + 1;
} while (i < 2);


Ablauf:

  1. i wird auf 0 gesetzt
  2. Der Anweisungsblock ausgeführt
    1. Er gibt im seriellen Monitor 0 aus
    2. Er erhöht i um 1
  3. Es wird geguckt, ob i kleiner als 2 ist -> wahr
  4. Er springt wieder zu Schritt 2


Anmerkung:

So wird in der do-while Schleife der Anweisungsblock immer zuerst ausgeführt und danach wird erst überprüft, ob die Bedingung zutrifft.

Zuletzt geändert: Donnerstag, 25. Juni 2020, 13:22