CSS, HTML und Javascript mit {stil}

while-Schleifen

Javascript while und do-while

while-Schleifen wiederholen Anweisungen, solange die Bedingung true liefert. Wenn die Bedingung bei der ersten Abfrage nicht true liefert, wird die while-Schleife gar nicht erst ausgeführt.

Javascript do … while wiederholt Anweisungen, bis eine Bedingung nicht mehr zutrifft – false wird – auf jeden Fall aber einmal.

Wie fast alle Programmiersprachen hat auch Javascript gut ein halbes Dutzend Variationen von Schleifen – Loops – an Bord. Die while-Schleife ist das Mutterschiff aller Loops.

while (Bedingung) {
   Anweisungen;
}

Wenn die Bedingung false liefert, endet die Ausführung der while-Schleife und die Kontrolle wird an die Anweisungen nach der while-Schleife übergeben.

while

Auf jeden Fall muss sichergestellt werden, dass die Bedingung false wird, ansonsten entsteht eine unendliche Schleife.

Diese Schleife wird vier Mal durchlaufen:

var x = 1; 
while (x < 5) {
    console.log ('Lauf ' + x );
    x = x + 1;
}

Das Skript initialisiert die Variable x auf den Wert 1, bevor die while-Anweisung ausgeführt wird. Die while-Anweisung prüft die Bedingung (x < 5). Da 1 kleiner als 5 ist, durchläuft das Skript die while-Schleife ein erstes Mal.

Die letzte Anweisung im Block der while-Schleife zählt das x um eins herauf, so dass die Schleifenbedingung nach dem vierten Durchlauf nicht mehr zutrifft. In jeder while-Schleife muss die Schleifenbedingung geändert werden – ansonsten würde die Schleife endlos laufen oder der Browser abstürzen.

Das ist nur die einfachste Variante einer while-Schleife, denn die Bedingungen sind meist deutlich komplexer. Wenn obendrein mehr Anweisungen in der while-Schleife ausgeführt werden, verlagert man der Lesbarkeit zuliebe möglichst viele Anweisungen in eine Funktion, damit die whille-Schleife besser nachvollziehbar ist.

Javascript do … while

do {
   Anweisungen;
} while (Bedingung)

Die Anweisungen werden einmal durchgeführt, bevor die Bedingung geprüft wird. Wenn die Bedingung true liefert, werden die Anweisungen erneut ausgeführt. Am Ende jedes Laufs durch die Schleife wird die Bedingung abgefragt. Wenn die Bedingung false liefert, endet die Ausführung und die Kontrolle wird an die Anweisungen hinter der do ... while-Anweisungen übergeben.

do {
   text += "<div>" + x + ' mal 3 ist ' + (3*x) + "</div>"; 
   x = x + 1;
} while (x <= zahl);

break und continue in while-Schleifen

Es gibt immer wieder Ausnahmesituationen, in denen es effizienter ist, die while-Schleife vor ihrem Ende zu verlassen:

  • Entweder um den Rest des Code-Blocks auszulassen und sofort den nächsten Schleifendurchlauf zu beginnen,
  • oder um die Schleife vorzeit abzubrechen.

Dafür stellt Javascript die Anweisungen break (Schleife sofort abbrechen) und continue (sofort wieder an den Anfang der Schleife) zur Verfügung.

while vs for-loop

Ein großer Teil der Aufgaben des Scriptings auf Webseiten dreht sich um Arrays und Strings, deren Länge bekannt ist.