7 Fachkonzept - Wiederholung
Abläufe mit Wiederholungen
Bei der automatisierten Verarbeitung von Daten kommt es sehr oft vor, dass dieselben Anweisungen in einer Art Schleife wiederholt ausgeführt werden. Das folgende Flussdiagramm zeigt eine solche Verarbeitung mit Wiederholung.

Fachkonzept - Wiederholungen
Ein sehr oft benutztes Ablaufmuster zur Modellierung wiederholter Abläufe ist die Solange-Wiederholung.
Eine Solange-Wiederholung besteht aus einer Bedingung und einer Anweisungssequenz.
Der Aufbau einer solchen Anweisung lässt sich gut mit einem Struktogramm verdeutlichen.

Bei der Ausführung einer Solange-Wiederholung wird vor jedem Wiederholungsdurchgang überprüft, ob die Bedingung erfüllt ist. Ist das der Fall, so werden die Anweisungen der Anweisungssequenz ausgeführt und der nächste Wiederholungsdurchgang kann beginnen. Andernfalls wird die Ausführung der Wiederholungsanweisung beendet. Das folgende Flussdiagramm veranschaulicht die Schleife, die bei der Ausführung der Solange-Wiederholung durchlaufen wird.

Zwei Sonderfälle sind hier zu beachten.
Ist die Bedingung gleich zu Beginn nicht erfüllt, so wird die Schleife überhaupt nicht durchlaufen. Die Solange-Wiederholung bewirkt dann gar nichts.
Ist die Bedingung vor jedem Schleifendurchlauf erfüllt, so wird die Schleife (theoretisch) unendlich oft durchlaufen. Man spricht dann auch von einer Endlosschleife. In der Praxis muss man in einem solchen Fall die Ausführung abbrechen.
Beachte, dass es neben der Solange-Wiederholung noch weitere Ablaufmuster zur Beschreibung von Wiederholungen gibt. Wir werden diese hier nicht weiter thematisieren - außer Zählschleifen, die im nächsten Abschnitt betrachtet werden.
Implementierung einer Solange-Anweisung in Java
Zur Implementierung einer Solange-Wiederholung stellt Java die
while
-Anweisung zur Verfügung:
while ( [Bedingung] ) { [Anweisungssequenz] }
Beispiel:
public class Wuerfel4 { public static void main(String[] args){ // Verarbeitung int augenzahl = (int) (6*Math.random()+1); int zaehler = 1; while (augenzahl != 6) { augenzahl = (int) (6*Math.random()+1); zaehler = zaehler+1; } // Ausgabe System.out.println("Anzahl der Versuche: "+zaehler); } }
Eingeleitet wird sie mit dem Schlüsselwort while
.
Anschließend folgt eine Bedingung, die einfach oder auch
zusammengesetzt sein kann. Wichtig ist, dass der zu wiederholende
Anweisungsblock mit geschweiften Klammern eingeklammert wird. Um den
Programmcode übersichtlicher zu gestalten, ist es üblich diese
Anweisungen um eine feste Anzahl von Leerzeichen einzurücken. Die
genaue Anzahl der Leerzeichen hängt von den Einstellungen des
Programmiersystems ab.