Table of Contents
|
Schleifen? Bindet man sich damit nicht die Schuhe zu? Moment, das ist ja was anderes. ^^'
Numerische For-Schleife
for Zählvariable = Anfang, Ende, Zählschritt do
Anweisungen
end
Eine numerische For-Schleife besteht aus:
- eine Zählvariable
- ein Startwert
- ein Maximalwert
- eine Schrittweite
- ein Anweisungsblock
Funktionsfähiges Beispiel:
for i= 1,5,1 do
Logic.DEBUG_AddNote("Schleifendurchlauf: "..i)
end
Hier wird von 1 bis 5 in ganzzahligen Schritten gezählt. Die Zählvariable wird ausgegeben.
Auch möglich:
for i= -10,1000,100 do
...
end
for i= 58,1,-0.5 do
...
end
Bezeichnete For-Schleife
Die zweite Form der For-Schleife eignet sich besonders um Tables durchzugehen. Ein gutes Beispiel ist die rekursive Funktion Umlaute.
for Key, Value in Table do
Anweisung
end
Eine bezeichnete For-Schleife besteht aus:
- einem Schlüssel (Key)
- einem Wert (Value)
- dem durchgegangenen Table
- ein Anweisungsblock
Funktionsfähiges Beispiel:
for k,v in pairs(meinTable) do
Logic.DEBUG_AddNote("Key: "..k.." | Value: "..v)
end
Der Table wird von Anfang bis Ende durchgegangen. Dabei wird hier das Schlüssel-Wert-Paar ausgegeben.
While-Schleife
Eine While-Schleife ist eine kopfgesteuerte Schleife. Das heißt, sie wird solange ausgeführt bis die angegebene Bedingung false ist.
while Bedingung
do
Anweisung
end
Eine While-Schleife besteht aus:
- einer Bedingung
- ein Anweisungsblock
Ablauf:
- Bedingung wird geprüft
- Bedingung falsch: Ende
- Bedingung wahr: Block ausführen
- Zurück zu 1.
Funktionsfähiges Beispiel:
local val = 10
while (val > 0)
do
Logic.DEBUG_AddNote("Die Schleife wird ausgeführt")
val = val - 0.5
end
Logic.DEBUG_AddNote("Die Schleife ist zu Ende!")
Repeat-Until-Schleife
Eine Repeat-Until-Schleife ist eine fußgesteuerte Schleife. Das heißt, die Anweisungen werden ausgeführt und danach die Bedingung geprüft. Beendet ist sie, sobald die Bedingung false ist.
repeat
Anweisung
until Bedingung
Eine Repeat-Until-Schleife besteht aus:
- ein Anweisungsblock
- einer Bedingung
Ablauf:
- Der Block wird ausgeführt
- Die Bedingung wird geprüft
- Bedingung falsch: Ende
- Bedingung wahr: Zurück zu 1.
local val = 10
repeat
Logic.DEBUG_AddNote("Die Schleife wird ausgeführt")
val = val - 0.5
until (val <= 0)
Logic.DEBUG_AddNote("Die Schleife ist zu Ende!")
Blöcke | Verzweigungen |
---|