Search

đŸ€“
Tutorial
WeiterfĂŒhrende Links
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 in der Liste aus, an der etwas geĂ€ndert werden soll.
Die for-Schleife ist wie folgt aufgebaut:
  1. 1.
    Das ist noch nicht Teil der Schleife, aber hilfreich, da besser lesbar: Wir speichern unsere DatensÀtze in einer Variablen.
  2. 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
  3. 3.
    Anweisung, was zu tun ist.
  4. 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 mit diesem Skript 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 an (inklusive) und hört vor dem Wert nach to auf (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 zu for 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 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 + 1
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.