Schleifen dienen zur mehrmaligen Ausführung gleicher Programmteile. Verschachtelungen von Schleifen sind in allen Programmiersprachen beliebig weit möglich. Für die Verknüpfungen bzw. Klammerungen von Bedingungen gelten in den jeweiligen Programmiersprachen die selben Regeln wie bei den Verzweigungen (Selektion).
Begriffe
Laufbedingung: Die Schleife wird durchlaufen, solange die Bedingung erfüllt ist
Abbruchbedingung: Die Schleife wird durchlaufen, bis die Bedingung erfüllt ist.
Merkregel
Steht vor der Bedingung ein while, muß eine Laufbedingung angegeben werden.
(Ausnahme: In Cobol gibt es kein while)
Steht vor der Bedingung ein until, muß eine Abbruchbedingung angegeben werden
3.1 Bedingungsprüfung am Anfang
Da der Wert des Bedingungsausdruckes vor der Abarbeitung der Anweisung überprüft wird, ist es möglich, daß die Schleife überhaupt nicht durchlaufen wird.
C, C++, JAVA C, C++, JAVA spezifische Anmerkungen
Syntax:
while (Laufbedingung)
{
Anweisungsblock;
}
Zu beachten:
nichts
Beispiele
C/C++ while ( i < 10 )
{
printf(\"%d ist kleiner 10\\n\",i);
i++;
}
JAVA while ( i < 10 )
{
System.out.println(\" \" + i + \" ist kleiner 10\\n\");
i++;
}
Visual Basic Visual Basic spezifische Anmerkungen
Syntax:
While Laufbedingung
Anweisungsblock
Wend
Do While Laufbedingung
Anweisungsblock
Loop
Do Until Abbruchbedingung
Anweisungsblock
Loop
Zu beachten:
nichts
Beispiele
While i < 10
Print i,\" ist kleiner als 10\"
i = i + 1
Wend
Do While i < 10
Print i,\" ist kleiner als 10\"
i = i + 1
Loop
Do Until i = 10
Print i,\" ist kleiner als 10\"
i = i + 1
Loop
Cobol 85 Cobol 85 spezifische Anmerkungen
Syntax:
PERFORM [WITH TEST BEFORE] UNTIL Abbruchbedingung
Anweisung
END-PERFORM
Zu beachten:
. WITH TEST BEFORE: Die Abbruchbedingung wird am Anfang der Schleife geprüft (Default; kann weggelassen werden).
Beispiel
PERFORM UNTIL i = 10
DISPLAY i,\" ist kleiner 10\"
i = i + 1
END-PERFORM
3.2 Bedingungsprüfung am Ende
Die Schleife wird dabei auf jeden Fall mindestens einmal durchlaufen.
C, C++, JAVA C,C++, JAVA spezifische Anmerkungen
Syntax:
do
{
Anweisungsblock;
} while (Laufbedingung)
Zu beachten:
nichts
Beispiele
C/C++ do
{
printf(\"%d ist kleiner 10\\n\",i);
i++;
} while ( i < 10 )
JAVA do
{
System.out.println(\" \" + i + \" ist kleiner 10\\n\");
i++;
} while ( i < 10 )
Visual Basic Visual Basic spezifische Anmerkungen
Syntax:
Do
Anweisungsblock
Loop While Laufbedingung
Do
Anweisungsblock
Loop Until Abbruchbedingung
Zu beachten:
nichts
Beispiele
Do
Print i,\" ist kleiner als 10\"
i = i + 1
Loop While i < 10
Do
Print i,\" ist kleiner als 10\"
i = i + 1
Loop Until i = 10
Cobol 85 Cobol 85 spezifische Anmerkungen
Syntax:
PERFORM WITH TEST AFTER UNTIL Abbruchbedingung
Anweisung
END-PERFORM
Zu beachten:
. WITH TEST AFTER: Die Abbruchbedingung wird am Ende der Schleife geprüft
Beispiel
PERFORM WITH TEST AFTER UNTIL i = 10
DISPLAY i,\" ist kleiner 10\"
i = i + 1
END-PERFORM
3.3 Zählschleifen
Wenn im voraus bekannt ist, wie oft die Anweisungen zu wiederholen sind, werden Zählschleifen verwendet.
Es muß dabei immer ein Anfangswert (AW), Endwert (EW; bzw. Laufbedingung) und eine Schrittweite (SW) angegeben werden.
C, C++, JAVA C, C++, JAVA spezifische Anmerkungen
Syntax:
for (AW;EW;SW)
{
Anweisungsblock;
}
Zu beachten:
nichts
Beispiele
C/C++ for (i = 1; i < 10; i++)
{
printf(\"%d ist kleiner 10\\n\",i);
}
JAVA for ( i = 1; i < 10; i++)
{
System.out.println(\" \" + i + \" ist kleiner 10\\n\");
}
Visual Basic Visual Basic spezifische Anmerkungen
Syntax:
For Laufvariable = AW To EW [Step SW]
Anweisungsblock
Next [Laufvariable]
Zu beachten:
. AW, EW, SW dürfen auch aus einem Ausdruck bestehen. Außerdem dürfen sie negativ sein oder aus einer beliebigen rationalen Zahl bestehen.
. Ohne Angabe einer Schrittweite mit Step wird standardmäßig eine Schrittweite von 1 angenommen.
. Laufvariable nach Next kann entfallen. Dadurch wird nur die Ausführungsgeschwindigkeit geringfügig erhöht.
Beispiel
For i = 1 to 9
Print i,\" ist kleiner als 10\"
Next
Cobol 85 Cobol 85 spezifische Anmerkungen
Syntax:
PERFORM VARYING Laufvariable FROM AW BY SW UNTIL Abbruchbedingung
Anweisungsblock
END-PERFORM
Zu beachten:
. Die Laufvariable darf in der Schleife nicht verändert werden.
Beispiel
PERFORM VARYING i FROM 1 BY 1 UNTIL i = 10
DISPLAY i,\" ist kleiner 10\"
END-PERFORM
|