for...loop...while/until
for...loop...while/until
Schleife mit Initialisierung
Details
- Siehe: Verwandte Befehle ,
do ... while,while, Vergleichsoperatoren ,break,cycle
Syntax:
for <Anweisung> loop <Anweisung> while <Ausdruck>
<Anweisung>
oder
for <Anweisung> loop <Anweisung> until <Ausdruck>
<Anweisung>
Dieser Schleifentyp verfügt über drei verschiedene Elemente:
- - Initialisierung:
for... - - Wiederholungsanweisung:
loop... - - Bedingung:
while...oderuntil...
Zuerst wird die Initialisierungsanweisung durchgeführt. Danach wird zunächst die Schleifenbedingung geprüft, bevor die Schleife das erste Mal durchlaufen wird. Nach dem Durchlauf wird die Wiederholungsanweisung durchgeführt und anschließend die Schleifenbedingung erneut überprüft.
Als Schleifenbedingung kann sowohl until (Schleife läuft bis die Bedingung erfüllt ist) als auch while (Schleife läuft solange die Bedingung erfüllt ist) verwendet werden. In beiden Fällen handelt es sich um eine Schleifen-Eintrittsbedingung.
Die for-Schleife eignet sich besonders für komplexe Schleifen, da als Initialisierungs- bzw. Wiederholungsanweisung auch Anweisungsblöcke möglich sind.
Um innerhalb einer Schleife eine extreme Schachtelung von if ... else-Anweisungen zu vermeiden, können mit dem Befehl cycle die restlichen Anweisungen in der Schleife übersprungen werden. Mit dem Befehl break wird die Schleife beendet.
Beispiele:
for tCount # 0
loop Inc(tCount)
while (tCount < 10000)
{
...
}
// Alle Datensätze einer Datei lesen
for tRes # RecRead(tblCstCustomer, kCstId, _RecFirst)
loop tRes # RecRead(tblCstCustomer, kCstId, _RecNext)
while (tRes < _rNoKey)
{
...
}
// Alle Spalten eines Data- oder RecList-Objektes ermitteln
for tHdlClm # tHdlListObj->WinInfo(_WinFirst)
loop tHdlClm # tHdlClm->WinInfo(_WinNext)
while (tHdlClm != 0)
{
...
}
Bei der Verwendung des PASCAL-Styles muss eine andere Syntax beachtet werden. Weitere Informationen befinden sich im Abschnitt Style-Unterschiede .