Schleifen

Wenn derselbe Codeabschnitt mehrmals hintereinander wiederholt werden soll, spricht man von einer Schleife.
Ganz allgemein lassen sich Schleife durch nachfolgende Ablaufdiagramme beschreiben:

while-Schleife

An Beginn einer while-Schleife steht immer eine Frage, die mit ja oder nein beantwortet werden kann, oder eine Bedingung, die wahr oder falsch ist.
Wenn die Frage mit Ja beantwortet wird bzw. die Bedingung wahr ist, wird der nachfolgende Anweisungsblock ausgeführt.
Anschließend wird wieder dieselbe Frage gestellt bzw. der Wahrheitswert der Bedingung abgefragt.
Dieser Vorgang wiederholt sich solange bis die Frage mit Nein beantwortet wird bzw. die Bedingung falsch ist. Man sagt, die Schleife terminiert.
Es ist daher klar, dass sich bei der Abarbeitung des Anweisungsblocks in der Schleife der (Speicher-)Zustand des Programms verändern muss, damit die Bedingung falsch werden kann.
Wenn eine Bedingung nie falsch wird, kommt es zu einer Endlosschleife, in der der Programmablauf hängen bleibt. In der Regel ist das eine unerwünschte Situtation.
Wenn bei einer while-Schleife die Bedingung gleich beim ersten Mal falsch ist, wird der Anweisungblock nie abgearbeitet. Die Anzahl der Wiederholungen sind nicht von Anfang an vorgegeben.

Darstellung einer while-Schleife als Struktogramm

do-while-Schleife (repeat-Schleife)

An Beginn einer do-while-Schleife (in anderen Programmiersprachen repeat-Schleife genannt) steht immer ein Anweisungsblock. Nachdem dieser mindestens einmal abgearbeitet wurde folgt eine Frage, die mit ja oder nein beantwortet werden kann, oder eine Bedingung, die wahr oder falsch ist. Wenn die Frage mit Ja beantwortet wird bzw. die Bedingung wahr ist, wird der Anweisungsblock erneut ausgeführt.
Dieser Vorgang wiederholt sich solange bis die Frage mit Nein beantwortet wird bzw. die Bedingung falsch ist. Man sagt, die Schleife terminiert.
Es ist daher klar, dass sich auch bei der Abarbeitung des Anweisungsblocks in der do-while-Schleife der (Speicher-)Zustand des Programms verändern muss, damit die Bedingung falsch werden kann.
Wenn eine Bedingung nie falsch wird, kommt es zu einer Endlosschleife, in der der Programmablauf hängen bleibt. In der Regel ist das eine unerwünschte Situtation.
Bei einer do-while-Schleife wird der Anweisungblock mindestens einmal abgearbeitet. Die Anzahl der Wiederholungen sind nicht von Anfang an vorgegeben.

Darstellung einer repeat-Schleife als Struktogramm

Jede do-while-Schleife lässt sich auch als while-Schleife formulieren:

do {
   Anweisungsblock;
} while (Bedingung)

entspricht

Anweisungsblock;
while (Bedingung) {
   Anweisungsblock;
}

for-Schleife (als Spezialfall Zählschleife)

Eine spezielle Schleifenform ist die for-Schleife bei der in der Regel die Anzahl der Wiederholungen von Anfang an feststeht.
Es wird eine (Zähl-)Variable definiert, mit einem Startwert initialisiert. Anschließend definiert man, wie der Inhalt der Variablen in jedem Schleifendurchlauf verändert wird (sehr oft erfolgt ein Zählvorgang nach oben oder unten) und wann dieser (Zähl-)Vorgang beendet wird. In jedem Schleifendurchlauf wird wieder ein Anweisungblock abgearbeitet.

Jede for-Schleife lässt sich auch als while-Schleife formulieren:

for (var i= ...; Bedingung mit i; Update von i) {
   Anweisungsblock;
}

entspricht

var i= ...;
while (Bedingung mit i) {
   Anweisungsblock;
   Update von i;
}

Module, die für die Durchführung vorausgesetzt werden