Schleifen: for, while, do-while
Schleifen werden eingesetzt um bestimmte Codeabschnitte zu wiederholen. Es wird zwischen drei Typen von Schleifen unterschieden:
- for-Schleife: Zählergesteuerte Schleife (auch ist der Begriff kopfgesteuert zutreffend)
- while-Schleife: Kopfgesteuerte Schleife (auch abweisende Schleife genannt)
- do-while-Schleife: Fußgesteuerte Schleife (auch annehmende Schleife genannt)
Die for-Schleife
Die for-Schleife stellt eine Wiederholung dar, bei der die Anzahl der Durchläufe festgelegt ist. Bei jedem Durchlauf werden alle Anweisungen, die zwischen den geschweiften Klammern stehen ausgeführt:
Die for-Schleife wird folgendermaßen gelesen:
- Vor Beginn der Schleife initialisiere eine Laufvariabe i mit 0
- Bevor die Anweisungen ausgeführt werden prüfe ob i < 100 ist
- Wenn ja, dann führe die Anweisungen, die zur Schleife gehören aus. Wenn nein, dann führe die Anweisung nicht aus und fahre nach der Schleife fort -> Schritt 6
- Nach der letzten Anweisung erhöhe i um den Wert 1 (und erhöhe j um den Wert von i)
- gehe zu wieder Schritt 2.
- Nach dem Ende der Schleife gebe die Summe aller i aus
Die Zählvariable i wird bei nach jedem Durchlauf um 1 erhöht oder vermindert (auch andere Schrittweite möglich, z.B. i += 2, oder i--).
Die while-Schleife
Die while-Schleife wiederholt Anweisungen so lange, bis eine Bedingung nicht mehr erfüllt ist. In dem hier dargestellten Programm werden die Anweisungen in den geschweiften Klammern so lange wiederholt, bis die Variable i den Wert 99 besitzt:
Die while-Schleife ist von der Logik her identisch mit der for-Schleife. Somit kann jede while-Schleife in eine for-Schleife umgewandelt werden und umgekehrt:
- Die Bedingung bei der for- und while-Schleife wird vor der Ausführung der Anweisungen abgefragt. Aus diesem Grund wird die while-Schleife auch als kopfgesteuerte Schleife (abweisende Schleife) bezeichnet.
- Wenn die Anzahl der Durchläufe bekannt ist, ist eine for-Schleife übersichtlicher.
- Die while-Schleife wird oftmals bei Endlosschleifen eingesetzt -> while (1) oder while (true)
Die do-while-Schleife
Bei einer do-while Schleife wird der Schleifenkörper so oft durchlaufen, solange die Bedingung erfüllt ist. Die Überprüfung der Bedingung erfolgt nach der Ausführung der Anweisungen, die zur Schleife gehören. Im unten stehenden Programm wird ausgegeben, wie oft die Schleife durchlaufen wird.
Die Variable i wird mit dem Wert 0 initialisiert. Die Schleife wird durchlaufen, so lange i < 0 ist. Diese Bedingung ist von Anfang an schon nicht erfüllt. Da aber die Überprüfung der Bedingung erst am Ende erfolgt, wird die Schleife 1-Mal durchlaufen. Bei der for- und while-Schleife würde kein Durchlauf erfolgen, da die Bedingung bereits am Anfang überprüft wird.
- Die Überprüfung der Bedingung erfolgt am Ende jedes Schleifendurchlaufs. Die do-while-Schleife wird deshalb als fußgesteuerte oder annehmende Schleife bezeichnet.
- Die do-while-Schleife wird somit mindestens einmal durchlaufen, da die Abfrage der Bedingung am Ende der Schleife erfolgt!
- Die do-while-Schleife wird in der Regel seltener eingesetzt, als die for- und while-Schleife.
- Nur bei der do-while-Schleife steht nach dem while ein Strichpunkt!