coord-transf.2d elements3d elementsnon geo scriptsfunctionscontrol statem.attributesvariousaddons
flow controlloopsext. connection
FOR…TO DO…WHILE REPEAT…UNTIL WHILE…ENDWHILE
Name
FOR_TO_STEP_NEXT
Syntax
FORcounter = begin  TOend [ STEPincrement ]
...
NEXTcounter
Aufklappen Range
counter Gültiger Variablenname, Typ numerisch (*)
begin, Typ real
end, Typ real
increment, Typ real

(*) Nur lokale, kein globaler Variablenname zulässig.
Aufklappen Description
Führt die Befehle zwischen FOR...TO...STEP und NEXT so oft aus, bis der counter den Wert end erreicht hat.

Zunächst wird am Beginn der Schleife mit FOR der Variablen counter der Wert begin zugewiesen und sogleich geprüft, ob sie damit die Zielbedingung end überschritten hat. Wenn nicht, also wenn mindestens gilt begin=end, werden die folgenden Befehle bis NEXT abgearbeitet.
Nach jedem Durchlauf der Schleife wird mit NEXT der Variablen counter der Wert increment (=1, wenn increment nicht angegeben) hinzuaddiert. Dann erfolgt der Rücksprung zu FOR...TO, wo nun wieder das erreichen des Wertes end 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 counter 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 increment ein negativer Wert, wird counter eben nicht erhöht, sondern erniedrigt. Der Zielwert end muss dann auch kleiner oder gleich als begin sein, wenn die Schleife durchlaufen werden soll.
Aufklappen Example
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
Aufklappen Specialities
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.
Aufklappen Tips and Tricks
Um eine Schleife vorzeitig zu beenden sollte man innerhalb der Schleife den Wert von counter auf end+increment setzen statt diese z.B. mit GOTO zu verlassen.

Hingegen hat eine Veränderung von increment während des Schleifendurchlaufs keine Auswirkung auf Erhöhung/Erniedrigung von counter mit NEXT.

Nach dem Ende der Schleife ist der letzte Wert in der Variablen counter 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 increment 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 end+increment sondern begin + ( INT((end - begin) / increment) + 1) * increment
Aufklappen References
GDL-Handbuch 4.5 (DE) p. 106
GDL-Handbuch 5.0 (DE) p. 152
GDL-Handbuch 6.0 (DE) p. 184
GDL-Handbuch 6.5 (DE) p. 184
GDL-Handbuch 7.0 (DE) p. 184
GDL-Handbuch 8.0 (DE) p. 124
GDL-Handbuch 8.1 (DE) p. 125
GDL-Handbuch 9.0 (DE) p. 211
GDL-Handbuch 10.0 (DE) p. 211
GDL-Handbuch 11.0 (DE) p. 217
GDL Reference Guide 9.0 (INT) p. 203
GDL Reference Guide 10.0 (INT) p. 209
GDL Reference Guide 11.0 (INT) p. 209
GDL Cookbook 3.1 (EN/DE) p. 1.26/1.36
 




separates Web Control Fenster Download Objekt

Aufklappen GDL WebControl