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.
for ... in ... do ... end
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 der Gruppe von Elementen, an dem etwas geändert werden soll.
Die for
-Schleife ist wie folgt aufgebaut:
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).
Beispiel
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.
let kunden := select 'Kunden (neu)' where Status = 2;
for kunde in kunden do
kunde.Status := 1;
end
Ergebnis: Allen Kunden, die den Status 2
haben, wird der Status 1
zugewiesen.
for ... from ... to ... do ... end
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).
Beispiel
let array := [10, 20, 30, 20, 10];
let result := 0;
for i from 0 to 3 do
result := result + item(array, i)
end;
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.
Beispiel
let array := [10, 20, 30, 20, 10];
let result := 0;
for i from 0 to 5 step 2 do
result := result + item(array, i)
end;
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 zufor i from 0 to 10.
while ... do ... end
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.
Beispiel
let i := 0;
let result := "";
while i < 10 do
result := result + " " + i;
i := i + 16
end;
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.
Antwort
Content aside
- vor 10 MonatenZuletzt aktiv
- 5Ansichten
-
1
Folge bereits