Magische Variable "loop"
Die magische Variable "loop" ermöglicht einen direkten Zugriff auf die aktuelle Schleife. Dem entsprechend wird beim Aufruf von loop außerhalb einer Schleife ein Fehler geworfen.
Mit "loop" lässt sich eine Schleife (Loop, Each, Count, For, While, Repeat, ...) steuern.
Runden-Zähler
Mit "loop" lässt sich auslesen, in welcher Wiederholung sich eine Schleife aktuell befindet:
5.times
loop.lap.print
In diesem Beispiel ist die "lap" identisch mit dem jeweils verarbeiteten Objekt (1,2,3,4,5).
Beim nachfolgenden Beispiel wird deutlich, dass die Schleife genau 7 Wiederholungen hat:
Count( 23, 41, 3 )
Print loop.lap
Steuerung
Ebenso lässt sich mit "loop" die Schleife steuern. Dafür stehen folgende Funktionen zur Verfügung:
Befehl | Alternativen | Beschreibung |
---|---|---|
.next | .continue | Abbruch der aktuellen Verarbeitung und ggf. start der nächsten Runde |
.break | .end, = | Abbruch der Schleife |
Die Steuer-Objekte "Next" und "Break" verweisen im Konstruktor auf "loop".
Rückgabe
Am Ende gibt eine Schleife immer den letzten Wert zurück.
a = 3.times
Print it
Print a
In diesem Beispiel ist der Rückgabewert 3.
Wird "break" ein Wert übergeben, so wird eben dieser zurück gegeben:
a = 3.times
it.print
loop.break( 99 )
a.print
"a" ist in diesem Fall 99.
Wie bei "app" und "func" kann "loop" auch direkt ein Wert zugewiesen werden. Da in diesem Fall ein Endergebnis für die Schleife vorliegt, wird diese direkt beendet.
a = 5.times
If( it == 3 )
loop = 99
a.print
Effektiv ist "loop = 99" identisch mit "loop.break( 99 )".