Die for-Schleife
Die
for
-Schleife stellt eine recht komfortable Schleife mit Anfangsbedingung dar. Am
häufigsten wird sie als sog.
Zählschleife benutzt. Sie nimmt 3
Anweisungen als Parameter, die jeweils mit einem Strichpunkt ';' getrennt sind. Darauf folgt der
auszuführende Teil:
for([Initialisierung]; [Bedingung]; [Inkrementierung]))
[Auszuführende Anweisung];
- Die Anweisung im ersten Parameter wird einmalig beim Eintritt in die Schleife ausgeführt. Hier
werden ggf. Variablen vor Eintritt in die Schleife initialisiert.
- Im zweiten Parameter wird eine Ausführbedingung übergeben. Die Schleife wird abgebrochen, wenn
der Ausdruck falsch ist. Er wird vor jedem Schleifendurchlauf geprüft.
- Der im dritten Parameter angegebene Ausdruck wird jeweils als letztes ausgeführt. Hier wird
typischerweise z.B. eine Variable für den nächsten Schleifendurchlauf hochgezählt.
Es ist erlaubt, einen oder mehrere dieser Parameter wegzulassen, den Platz zwischen den
Strichpunkten also freizulassen. Wird die Bedingung weggelassen, so wird die Schleife nie
automatisch abgebrochen. (Um die Schleife zu beenden, sollte dann break
verwendet
werden.) Auf diese Weise lässt sich z.B. eine Endlosschleife konstruieren:
for(;;)
Log("Fl00d!");
Gebrauch der for-Schleife als Zählschleife
Am Häufigsten findet die for
-Schleife Verwendung als Zählschleife. Will man sich
z.B. alle Zahlen zwischen 1 und 10 ausgeben lassen, so sieht das Script folgendermaßen aus:
for(var i = 1; i <= 10; i++)
Log("%d", i);
Zur Verdeutlichung: Die folgende
while-Schleife tut
exakt dasselbe:
var i = 0;
while(++i <= 10)
Log("%d", i);
Gebrauch der for-Schleife zum Durchlauf von Arrays
Eine weitere Funktion der for
-Schleife ist es, Arrays Element für Element zu durchlaufen
und für einen Durchlauf ein Element in einer Variable zu speichern. Das Script sieht folgendermaßen aus:
for(var element in a)
Log("%v", element);
Mit diesem Script würden alle Elemente des Array a
ins Log ausgegeben.
Gebrauch der for-Schleife zum Durchlauf von Maps
Eine weitere Funktion der for
-Schleife ist es, Schlüssel-Wert-Paare von Maps nacheinander zu durchlaufen. Das Script sieht folgendermaßen aus:
for(var key, value in m)
Log("%v => %v", key, value);
Mit diesem Script würden alle Einträge der Map m
durchlaufen und im Format "Schlüssel => Wert" geloggt.
Weitere Beispiele:
for(var i = 10; i >= 1; i--)
Log("%d", i);
Zählt rückwärts von 10 bis 1.
Var(0) = 2;
Var(1) = 1;
Var(2) = 4;
Var(3) = 3;
Var(4) = 2;
for(var i = 0; Var(i) != 3; i++)
Log("Var(%d) = %d", i, Var(i));
Gibt die lokalen nummerierten Variablen (siehe
Var()
) aus,
bis die erste 3 gefunden wird. Im Beispiel wird also folgende Ausgabe erzeugt:
Var(0) = 2
Var(1) = 1
Var(2) = 4
Peter, Juni 2004