Anweisungen mit Schleifen wiederholen
for ... in ... do ... end | for ... from ... to ... do ... end | while ... do ... end
Mit einer Schleife können Sie einen Code-Block automatisch mehrmals hintereinander ausführen. Sie können zum Beispiel die Anweisungen eines Code-Blocks auf jedes Element eines Arrays anwenden.
Das ist die wichtigste Schleife, die Sie sich auf jeden Fall merken sollten. Sie wird Ihnen seeeeehr oft das Leben ein bisschen leichter machen.
Wählen Sie nach dem
for
einen passenden Variablen-Namen für das jeweilige Element in der Liste aus, an der etwas geändert werden soll. Zeile 1: Das ist noch nicht Teil der Schleife, aber hilfreich, da besser lesbar: Wir speichern unsere Datensätze in einer Variablen.
Zeile 2: Die Schleife fängt an mit
for
[es folgt eine Bezeichnung für ein einzelnes Element aus der zu durchlaufenden Liste] in
[es folgt die Liste] do
.Zeile 3: Anweisung, was zu tun ist.
Zeile 4:
end
Die Schleife wird beendet (Terminierung).Sie möchten allen Kunden, die den Status
2
haben, einen neuen, den Status 1
geben. Dafür wählen Sie in der Tabelle Kunden (neu) die Kunden mit Status 2
aus. Dann weisen Sie jedem dieser Kunden (kunde
) den Status 1
zu.1
let kunden := select 'Kunden (neu)' where Status = 2;
2
for kunde in kunden do
3
kunde.Status := 1;
4
end
Ergebnis: Allen Kunden, die den Status
2
haben, wird der Status 1
zugewiesen.Diese Schleife eignet sich vor allem bei der Arbeit mit numerischen Werten, da anstelle eines Arrays eine Zahlenfolge verwendet wird, die von der Schleife durchlaufen wird.
Bei jedem Durchgang wird zu der Schleifenvariablen
1
addiert (Inkrement = 1
). Es fängt dabei mit dem Wert nach from
(inklusive) und hört vor dem Wert nach to
(exklusive).1
let array := [10, 20, 30, 20, 10];
2
let result := 0;
3
for i from 0 to 3 do
4
result := result + item(array, i)
5
end;
6
result
Ergebnis:
60
Die Werte des Arrays mit den Indizes
0
, 1
und 2
werden addiert. 10
+ 20
+ 30
= 60
.Durch
step
kann man die Höhe des Inkrements ändern.1
let array := [10, 20, 30, 20, 10];
2
let result := 0;
3
for i from 0 to 5 step 2 do
4
result := result + item(array, i)
5
end;
6
result
Ergebnis:
50
Die Werte des Arrays mit den Indizes
0
, 2
und 4
werden addiert. 10
+ 30
+ 10
= 50
.for i in range(0, 10)
ist das Äquivalent zu for i from 0 to 10.
Diese Schleife wird so lange ausgeführt, bis die Bedingung nach
while
nicht mehr erfüllt ist.Dafür deklarieren Sie zum Beispiel eine Zählervariable, die bei jedem Schleifendurchgang inkrementiert wird, bis die Bedingung nicht mehr stimmt. Die Bedingung stimmt so lange (
true
) die Variable kleiner als ein festgelegter Wert ist.Falls die Bedingung sich in keinem Durchgang auf
false
setzt, besteht die Gefahr in einer Endlos-Schleife zu enden. Es könnte sein, dass Ninox dann explodiert. 😉
1
let i := 0;
2
let result := "";
3
while i < 10 do
4
result := result + " " + i;
5
i := i + 1
6
end;
7
result
Ergebnis:
0 1 2 3 4 5 6 7 8 9
In den meisten Fällen ist
for ... in ... do ... end
die beste Wahl.Last modified 9mo ago