Schleifen
JavaScript bietet insgesamt 4 Schleifen: for
, while
, do
-while
und
for
-in
. Da die for
-in
-Schleife nur in Verbindung mit Arrays verwendet
werden kann, werden wir auf diese erst im Thema Arrays genauer eingehen. Schleifen werden dazu
verwendet, einen bestimmten Code so lange auszuführen, bis die Bedingung nicht mehr zutrifft.
Zählschleife
Die for
-Schleife oder auch gerne als Zählschleife bezeichnet wird, wie der Name schon vermuten lässt, gerne dazu
verwendet, bestimmte Vorgänge n mal auszuführen. Hierfür bietet die for
-Schleife schon ein einfaches
Grundgerüst, um diese „Zählung“ durchzuführen. Eine for
-Schleife wird durch das Schlüsselwort for
gefolgt von einem runden Klammernpaar und einem Block ausgezeichnet. Die geschweiften Klammern des Blocks können weggelassen
werden, wenn nur eine Anweisung innerhalb des Schleifenblocks notiert wird. Innerhalb der runden Klammern (zusammen mit dem
Schlüsselwort for
als Schleifenkopf bezeichnet) werden 3 Bestandteile notiert, welche durch Semikolon
getrennt werden. Der erste Teil dient zur Variablendeklaration. Diese wird vor dem Aufruf der Schleife ausgeführt. Der
zweite Teil stellt die Bedingung dar. Die Bedingung wird vor jedem Durchlauf der Schleife und somit auch vor dem ersten
Durchlauf geprüft. Der dritte Teil dient bei der üblichen Zählschleife zum Hochzählen der im ersten Teil definierten Variablen.
Hierfür kann der Operator ++
verwendet werden. Diese Operation wird in der Fachsprache Inkrementierung
genannt. Die Anweisung i++
entspricht der Anweisung i += i
, welche wiederum der Anweisung
i = i + 1
entspricht. Eine solche Verkürzung ist auch bei der Subtraktion mittels i -= 1
und
i--
(Dekrementierung) möglich. Für Multiplikation und Division ist lediglich die etwas kürzere
Schreibform i *= 2
und i /= 2
möglich.
for (var i = 0; i < 10; i++) { document.write(i); document.write(" "); }
Um aus einer Schleife herauszuspringen können wir das Schlüsselwort break
(wie beim switch
-case
)
nutzen. Mit Hilfe des Statements continue
ist es möglich, die Ausführung des Codes im Schleifenblock (auch als
Schleifenrumpf bezeichnet) zu beenden und wieder zum Schleifenkopf zu springen.
Kopfgesteuerte Schleife
Die while
-Schleife ist eine kopfgesteuerte Schleife, d. h. die angegebene Bedingung wird geprüft bevor der Code der
Schleife (Schleifenrumpf) ausgeführt wird. Eine while
-Schleife wird mit dem Schlüsselwort while
und der
Bedingung (angegeben in runden Klammern) gebildet. Anders wie bei der for
-Schleife gibt es hier so etwas wie eine
Variablendeklaration oder einen Code zur Inkrementierung einer Variablen nicht. Das folgende Beispiel zeigt, wie das obige
Beispiel der for
-Schleife mittels einer -Schleife ersetzt werden kann:
var i = 0; while (i < 10) { document.write(i); document.write(" "); i++; }
Wichtig: Für einen Zählvorgang (wie im Beispiel oben) sollte in der Praxis keine while
-Schleife, sondern eine
for
-Schleife verwendet werden. Das Beispiel soll lediglich die Verwendung der Schleife erklären.
Übrigens: Die for
-Schleife ist ebenfalls eine kopfgesteuerte Schleife, da die Bedingung geprüft wird,
bevor der Code im Schleifenrumpf ausgeführt wird.
Fußgesteuerte Schleife
Die do
-while
-Schleife ist ähnlich wie die while
-Schleife, jedoch mit dem gravierenden
Unterschied, dass es sich bei der do
-while
-Schleife um eine fußgesteuerte Schleife handelt. Dies hat
zur Folge, dass der Code des Schleifenrumpfs mindestens einmal ausgeführt wird. Die Prüfung der Bedingung der Schleife
wird immer am Ende eines Schleifendurchlaufs ausgeführt. Das folgende Beispiel erzeugt die gleiche Ausgabe wie das Beispiel zur
for
- und while
-Schleife, ist jedoch nicht als äquivalenter Ersatz zu sehen, denn wäre die Variable
i
nicht mit 0 initialisiert sondern z. B. mit 10, so würde das folgende Beispiel 10 ausgeben, obwohl die Bedingung
i < 10
ist. Vom Aufbau wird bei der do
-while
-Schleife zuerst das Schlüsselwort
do
gefolgt von einem Block notiert. Anschließend wird das Schlüsselwort while
gefolgt von der Bedingung
angegeben. Nach der runden Klammer, in welcher die Bedingung angegeben ist, muss noch ein Semikolon notiert werden. Bei der
do
-while
-Schleife können die geschweiften Klammern nicht weggelassen werden.
var i = 0; do { document.write(i); document.write(" "); i++; } while (i < 10);
Übrigens: Der Variablenname i
für Zählerschleifen kommt vermutlich vom englischen und stellt den Anfangsbuchstaben
des Worts index dar. Abgeleitet wurde das Ganze angeblich aus der mathematischen Summe. Werden Schleifen innerhalb von Schleifen
verwendet, wird üblicherweise j
für die zweite Schleife verwendet, k
für die dritte Schleife usw.. Für
Schleifen die nacheinander folgen, kann wieder die gleiche Variable verwendet werden.