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.




Quellen

Text: http://www.inf-schule.de/programmierung/imperativeprogrammierung/fallstudien/kontrollstrukturen/fallstudie_zufallsexperimente/konzept_wiederholung