| |
|
|
| WhileLoop P:L1[,P:L2[,P:L3]] ... EndWhile
Parameter: P:L1 - Anzahl der Durchläufe oder Startwert P:L2 - Endwert P:L3 - Schrittweite
Das ist die XProfan-Version der traditionellen LINK:[FOR]-NEXT-Schleife. Allerdings ist eine Verschachtelung von mehreren Schleifen etwas anders zu realisieren, vor allem wenn auf die Laufvariablen der Schleifen zugegriffen werden muss.
Gibt es nur einen Parameter, wird die Schleife genau um die hinter WhileLoop angegebene Zahl durchlaufen. (siehe Beispiel 1)
Es wird 10 mal das "X" ausgegeben. Für den Fall, dass der Schleifenindex benötigt wird, befindet sich dieser in &LINKS:[Loop]. Außerhalb einer Schleife ist &LINKS:[Loop] undefiniert und innerhalb einer anderen While-Schleife hat &LINKS:[Loop] den aktuellen Wert des hinter While bzw. WhileNot stehenden Ausdrucks, also in den meisten Fällen 1. Innerhalb einer LINK:[Repeat]-LINK:[Until]-Schleife ist &LINKS:[Loop] undefiniert. (siehe Beispiel 2)
Bei zwei Parmetern ist der erste der Startwert und der zweite der Endwert. (siehe Beispiel 3)
Es werden die Zahlen von 10 bis 20 ausgegeben.
Es gibt wahlweise einen dritten Parameter, der die Schrittweite angibt. Die Schrittweite kann auch negativ sein. Es wird überprüft, ob die Parameter sinnvoll sind. 0 als Schrittweite ist ebensowenig zugelassen, wie eine Schrittweite in die falsche Richtung. Ist also der erste Wert kleiner als der zweite, muss die Schrittweite positiv sein und umgekehrt. (siehe Beispiel 4)
Es werden die Zahlen von 150 bis 100 in 5er-Schritten ausgegeben.
Das Äquivalent einer WhileLoop-Schleife zu einer For-Next-Schleife (s. o.) wäre folgendes: (siehe Beispiel 5)
Eine Verschachtelung würde wie folgt realisiert: (siehe Beispiel 6) Achtung: Der hinter WhileLoop stehende Ausdruck wird nur beim Beginn der Schleife ausgewertet und danach nicht mehr! Ein Ändern des Ausdrucks in der Schleife bleibt wirkungslos.
Es kann auch das von BASIC her gewohnte WEND statt EndWhile benutzt werden. EndWhile ist jedoch vorzuziehen.
|
|
|
| |
|
|