while
while
Stack | Position | Beschreibung |
---|---|---|
Stack(In) | Top | Wert |
Stack(Out) | Top | - |
Mit while endet ein mit do begonnener Zyklus. Der Zyklus wird wiederholt (mit der auf do folgenden Anweisung), wenn der Wert auf dem Stack-Top als TRUE aufgefasst werden kann (vergleiche if). Der Befehl while konsumiert, d.h. der Wert auf dem Stack, der als TRUE oder FALSE evaluiert wird, wird vom Stack genommen.
Beispiel:
Das folgende Beispiel summiert die Zahlen 1 bis 10
Var(i, sum)
10 -> i, 0 -> sum
do
sum i + -> sum
Decr(i)
i
while
sum String Attention
Hinweis: Bis einschließlich Version 4.4 hat while nur den FALSE Wert konsumiert, also beim Verlassen der Schleife. Der Wert, der zu TRUE evaluiert wird, blieb auf dem Stack.
Hinweis: Zyklen können bis zur Tiefe 128 verschachtelt sein. Zyklen sind bis einschließlich Version 4.4 nur innerhalb der Definition neuer Anweisungen erlaubt!