5. JavaScript - Schleifen

5.1. while-Schleife
5.2. do-while-Schleife
5.3. for-Schleife
5.4. Abbruch mittels break
5.5. Abbruch mittels continue

5.1. while-Schleife

Die while-Schleife führt einen Befehl oder einen Befehlsblock zyklisch aus, solange die Wiederholungsbedingung erfüllt ist. Dies geschieht in der Form while (Bedingung) Befehl; oder while (Bedingung) {Block}.
Die Notation ist auch hier identisch mit C und Java.
i=1;
answer="";
while (i<9)
{
  a=i*i;
  answer=answer+a+" ";
  i++;
}

In diesem Beispiel wird die Schleife ausgeführt, solange i kleiner als neun ist. Vor Schleifenbeginn wird i auf eins gesetzt und answer erhält als Inhalt eine leere Zeichenkette. Innerhalb der Schleife wird zuerst das Quadrat von i ermittelt und a auf dieses gesetzt. Danach wird das Quadrat an die Zeichenkette in der Variablen answer angefügt. Zum Schluß wird i um eins erhöht.
squares of the values 1, 2, 3, ..., 8


5.2. do-while-Schleife

Die do-while-Schleife tut prinzipiell das gleiche wie die while-Schleife, nur wird hier nicht vor jedem Schleifendurchlauf geprüft, ob die Ausführung der Schleife wiederholt wird, sondern danach. Die do-while-Schleife wird also immer mindestens einmal durchlaufen, egal ob die Wiederholungsbedingung am Anfang schon zutrifft oder nicht. Dies geschieht in der Form do Befehl while (Bedingung); oder do {Block} while (Bedingung);.
Auch hier ist die Notation identisch mit C und Java.
i=1;
answer="";
do
{
  a=i*i;
  answer=answer+a+" ";
  i++;
}
while (i<9);

Dieses Beispiel tut das gleiche wie das im vorigen Abschnitt.

5.3. for-Schleife

Die for-Schleife stellt eine verkürzte Schreibweise der while-Schleife dar. Sie hat die Form for (Initiationsbefehl;Bedingung;Schleifenendbefehl) Befehl; oder for (Initiationsbefehl;Bedingung;Schleifenendbefehl) {Block}. Auch hier ist alles wie in C und Java.
Der eigentliche Sinn besteht im numerischen Gebrauch nach dem Muster folgender Beispiele:
for (i=1;i<10;i++) (für jedes i; i=1, 2, 3, ..., 9)
for (j=12;j>=3;j--) (für jedes j; j=12, 11, 10, ..., 3)
for (alpha=3;alpha<100;alpha+=3) (für jedes alpha; alpha=3, 6, 9, 12,...; alpha<100)
answer="";
for (i=1;i<9;i++)
{
  a=i*i;
  answer=answer+a+" ";
}

Dieses Beispiel tut das gleiche wie die in den vorherigen beiden Abschnitten. Die beiden Befehle i=1; und i++; sind nun jedoch aus dem Block in die for-Anweisung hineingewandert.

5.4. Abbruch mittels break

Mittels des reservierten Wortes break kann man, genau wie auch in C und Java, zusätzliche Abbruchpunkte nach zusätzlichen Kriterien schaffen, die man außerdem an jeder beliebigen Stelle des Schleifenblockes einbauen kann. Der Befehl break; bricht die Ausführung der Schleife komplett ab, es finden keine weiteren Durchgänge statt.
answer="";
for (i=1;i<9;i++)
{
  a=i*i;
  answer=answer+a+" ";
  if (i==5) break;
}

Auch dieses Beispiel tut das gleiche wie das vorige, nur wird hier bereits am Ende des fünften Durchganges mittels break; abgebrochen.
squares of the values 1, 2, 3, 4, 5


5.5. Abbruch mittels continue

Mittels des reservierten Wortes continue läßt sich der aktuelle Schleifendurchlauf abbrechen. Anders als bei break wird hier die Schleife jedoch mit dem nächsten Durchlauf fortgesetzt. Auch hier ist alles gerade so wie in C und Java.
answer="";
for (i=1;i<9;i++)
{
  if (i==5) continue;
  a=i*i;
  answer=answer+a+" ";
}

Auch dieses Beispiel tut das gleiche wie das für die for-Schleife, jedoch wird hier der fünfte Durchgang bereits am Anfang abgebrochen. Das Quadrat von 5 wird daher nicht berechnet und die 25 erscheint nicht in der Zeichenkette.
squares of the values 1, 2, 3, 4, 6, 7, 8


Autor: Ulrich Kritzner