Name
FOR
Syntax
FOR zähler = beginn TO ende [ STEP schrittweite ]
...
NEXT zähler
...
NEXT zähler
zähler Gültiger Variablenname, Typ numerisch (*)
beginn, Typ real
ende, Typ real
schrittweite, Typ real
(*) Nur lokale, kein globaler Variablenname zulässig.
beginn, Typ real
ende, Typ real
schrittweite, Typ real
(*) Nur lokale, kein globaler Variablenname zulässig.
Führt die Befehle zwischen FOR...TO...STEP und NEXT so oft aus, bis der zähler den Wert ende erreicht hat.
Zunächst wird am Beginn der Schleife mit FOR der Variablen zähler der Wert beginn zugewiesen und sogleich geprüft, ob sie damit die Zielbedingung ende überschritten hat. Wenn nicht, also wenn mindestens gilt beginn=ende, werden die folgenden Befehle bis NEXT abgearbeitet.
Nach jedem Durchlauf der Schleife wird mit NEXT der Variablen zähler der Wert schrittweite (=1, wenn schrittweite nicht angegeben) hinzuaddiert. Dann erfolgt der Rücksprung zu FOR...TO, wo nun wieder das erreichen des Wertes ende geprüft wird. Ist dieser erreicht oder überschritten, wird zu dem nächsten Befehl nach dem NEXT-Bestandteil verzweigt. Die Schleife ist beendet.
Wichtig ist, dass sich die Variable zähler vollwertig ist. D.h., dass sie Bestandteil von Ausdrücken und Berechnungen sein kann, sowie innerhalb der Schleife zusätzlich zu seiner automatischen Veränderung mit NEXT neu zugewiesen werden kann.
Ist schrittweite ein negativer Wert, wird zähler eben nicht erhöht, sondern erniedrigt. Der Zielwert ende muss dann auch kleiner oder gleich als beginn sein, wenn die Schleife durchlaufen werden soll.
Zunächst wird am Beginn der Schleife mit FOR der Variablen zähler der Wert beginn zugewiesen und sogleich geprüft, ob sie damit die Zielbedingung ende überschritten hat. Wenn nicht, also wenn mindestens gilt beginn=ende, werden die folgenden Befehle bis NEXT abgearbeitet.
Nach jedem Durchlauf der Schleife wird mit NEXT der Variablen zähler der Wert schrittweite (=1, wenn schrittweite nicht angegeben) hinzuaddiert. Dann erfolgt der Rücksprung zu FOR...TO, wo nun wieder das erreichen des Wertes ende geprüft wird. Ist dieser erreicht oder überschritten, wird zu dem nächsten Befehl nach dem NEXT-Bestandteil verzweigt. Die Schleife ist beendet.
Wichtig ist, dass sich die Variable zähler vollwertig ist. D.h., dass sie Bestandteil von Ausdrücken und Berechnungen sein kann, sowie innerhalb der Schleife zusätzlich zu seiner automatischen Veränderung mit NEXT neu zugewiesen werden kann.
Ist schrittweite ein negativer Wert, wird zähler eben nicht erhöht, sondern erniedrigt. Der Zielwert ende muss dann auch kleiner oder gleich als beginn sein, wenn die Schleife durchlaufen werden soll.
Beispiel 1:
FOR anzahl=1 TO 5
BLOCK 0.3,0.3,3.5
ADDX 7.5
NEXT anzahl
Führt 5 Schleifendurchgänge aus (mit anzahl=1 bis anzahl=5).
Beispiel 2:
FOR x=0 TO 1 STEP 0.3
FOR y=0 TO 1
CIRCLE2 x,y,0.04
NEXT y
NEXT x
FOR anzahl=1 TO 5
BLOCK 0.3,0.3,3.5
ADDX 7.5
NEXT anzahl
Führt 5 Schleifendurchgänge aus (mit anzahl=1 bis anzahl=5).
Beispiel 2:
FOR x=0 TO 1 STEP 0.3
FOR y=0 TO 1
CIRCLE2 x,y,0.04
NEXT y
NEXT x
Schleifen können ineinander verschachtelt werden, jedoch kann jede Schleife erst erhöht/erniedrigt oder beendet werden, wenn die in ihr erhaltenen Schleifen bereits beendet wurden.
Schleifen dürfen für die Abarbeitung von Unterprogrammen (intere wie externe) verlassen werden.
Schleifen dürfen für die Abarbeitung von Unterprogrammen (intere wie externe) verlassen werden.
Um eine Schleife vorzeitig zu beenden sollte man innerhalb der Schleife den Wert von zähler auf ende+schrittweite setzen statt diese z.B. mit GOTO zu verlassen.
Hingegen hat eine Veränderung von schrittweite während des Schleifendurchlaufs keine Auswirkung auf Erhöhung/Erniedrigung von zähler mit NEXT.
Nach dem Ende der Schleife ist der letzte Wert in der Variablen zähler noch enthalten. In Beispiel 1 könnte man so z.B. die Koordinatentransformationen mit DEL anzahl-1 rückgängig machen.
Dabei ist zu beachten, dass der Variablen am Ende mit NEXT noch einmal schrittweite hinzugerechnet wird. Beim vorletzten Durchlauf ist anzahl=5 und demnach am Ende der Schleife anzahl=6.
Der Wert der Zählvariablen ist aber nicht immer ende+schrittweite sondern beginn + ( INT((ende - beginn) / schrittweite) + 1) * schrittweite
Hingegen hat eine Veränderung von schrittweite während des Schleifendurchlaufs keine Auswirkung auf Erhöhung/Erniedrigung von zähler mit NEXT.
Nach dem Ende der Schleife ist der letzte Wert in der Variablen zähler noch enthalten. In Beispiel 1 könnte man so z.B. die Koordinatentransformationen mit DEL anzahl-1 rückgängig machen.
Dabei ist zu beachten, dass der Variablen am Ende mit NEXT noch einmal schrittweite hinzugerechnet wird. Beim vorletzten Durchlauf ist anzahl=5 und demnach am Ende der Schleife anzahl=6.
Der Wert der Zählvariablen ist aber nicht immer ende+schrittweite sondern beginn + ( INT((ende - beginn) / schrittweite) + 1) * schrittweite