REPEAT-Schleife

Die REPEAT-Schleife unterscheidet sich von den WHILE-Schleifen dadurch, dass die Abbruchbedingung erst nach dem Ausführen der Schleife überprüft wird. Das hat zur Folge, dass die Schleife mindestens einmal durchlaufen wird, egal wie die Abbruchbedingung lautet.
Syntax:

REPEAT

<Anweisungen>

UNTIL <Boolescher Ausdruck>

END_REPEAT;

Die <Anweisungen> werden solange ausgeführt, bis <Boolescher Ausdruck> TRUE ergibt.
Wenn <Boolescher Ausdruck> bereits bei der ersten Auswertung TRUE ergibt, dann werden <Anweisungen> genau einmal ausgeführt. Wenn <Boolescher_Ausdruck> niemals den Wert TRUE annimmt, dann werden die <Anweisungen> endlos wiederholt, wodurch ein Laufzeitfehler entsteht.

Der Programmierer muss selbst dafür sorgen, dass keine Endlosschleife entsteht, indem er im Anweisungsteil der Schleife die Bedingung verändert, also zum Beispiel einen Zähler hoch- oder runterzählt.

Beispiel:

REPEAT

    Var1 := Var1*2;

    Zaehler := Zaehler-1;

UNTIL

    Zaehler=0

END_REPEAT