JavaScript While-Schleife

In JavaScript gibt es verschiedene Möglichkeiten zur Programmierung von Schleifen in JavaScript, die zur mehrfachen Ausführung von JavaScript-Code gedacht sind. Neben der For-Schleife, von der es zwei weitere Varianten gibt – nämlich die For-In-Schleife und die For-Each-Schleife – wird an dieser Stelle die kopfgesteuerte While-Schleife beschrieben.

Als kopfgesteuert kann man diese Schleife bezeichnen, da die Schleifenbedingung vor der Ausführung der im Schleifenblock notierten Anweisungen abgefragt wird. Ist die Schleifenbedingung (Vorbedingung) nicht erfüllt, so wird der Anweisungsblock innerhalb der Schleife auch nicht ausgeführt. Beachten Sie auch die Variante der While-Schleife, welche unter Do-While-Schleife beschrieben wird. Die Do-While-Schleife ist eine rumpfgesteuerte Schleife, da die Schleife mindestens einmal durchlaufen wird und die Schleifenbedingung erst nach Ausführung des Schleifenkörpers zum erstenmal ausgewertet wird.

JavaScript While Beispiel:

Im folgenden Beispiel werden zwei kopfgesteuerte While-Schleifen gelistet. Dabei wird allerdings nur die erste der beiden Schleifen auch ausgeführt. Bei der ersten While-Anweisung ist die Schleifenbedingung gegeben, da die Zählervariable zuvor mit dem Wert 0 initialisiert wird. Durch den Ausdruck in der Schleifenbedingung wird nach erfolgter Prüfung des Ausdrucks „i++ < 10” – also 0 < 10, was den Wert TRUE liefert; die Bedingung ist also erfüllt – in den Schleifenkörper eingetreten.

Der Ausdruck i++ bewirkt, dass die Variable i nach erfolgter Auswertung des Ausdrucks um eins inkrementiert (erhöht) wird. Nun wird die Summe in sum im ersten Schritt um 1 (den jetzt in i gespeicherten Wert) erhöht wurde, gelangt das Script in seiner Ausführung wieder an die Schleifenbedingung. Dies wird wiederholt, bis die Schleifenbedingung den Wert FALSE liefert – also bis i den Wert 10 angenommen hat. Da nach der Auswertung des Ausdrucks in der Schleifenbedingung der Wert von i nochmals um eins erhöht wird, steht nach dem While-Statement in i der Wert 11.

Als nächstes wird die errechnete Summe und danach der in i gespeicherte Wert jeweils mit document.write() ausgegeben. Die auf die Ausgaben folgende While-Schleife wird nun nicht mehr ausgeführt, da die Schleifenbedingung nun nicht mehr gegeben ist. Da i nun den Wert 11 hat, liefert die Auswertung der Schleifenbedingung nun 11 < 10 = FALSE. Das Programm tritt nun aufgrund der nicht gegebenen Vorbedingung nicht mehr in den Schleifenkörper ein und erhöht (durch i++ im Ausdruck) i nochmals um eins. Am Ende des Scripts werden die Werte von sum und i nochmals per Write-Methode des Document-Object ausgegeben.

<script language="javascript" type="text/javascript">
<!-- // JavaScript-Bereich für ältere Browser auskommentieren
// Variable zur Speicherung einer Summe von Zahlen
var sum = 0;
// Zählervariable
var i = 0;

// Die Variable i wurde mit 0 initialisiert!
// Aus diesem Grunde ist die Schleifenbedingung der folgenden
// While-Schleife gegeben und sie wird ausgeführt.
while (i++ < 10)
  // Sie berechnet die Summe der Zahlen von 0 bis 10.
  sum += i;
// Ausgabe der errechneten Summe
document.write ('sum: ' + sum + '<br>');

// An diesem Punkt enthält die Variable i den Wert 11!
document.write ('i: ' + i + '<br>');
// Die Schleifenbedingung ist hier nicht erfüllt (11 ist nicht
// kleiner als 10), weshalb
// die folgende While-Schleife nicht ausgeführt wird.
while (i++ < 10)
  sum += i;
// Die errechnete Summe ändert sich also nicht mehr!
document.write ('sum: ' + sum + '<br>');
// i hat nun den Wert 12
document.write ('i: ' + i);
// -->
</script>

Letzte Posts aus unserem Forum

Script Schrift vergrößern

Hallo wollte gerade das Script für die Schriftvergrößerung testen, aber irgendwie bekomme ich das nicht hin. Habe eine Joomla Website und dort die ... » mehr

von Gast am Donnerstag, 22. April 2010 13:32 in JavaScript - bisher 1 Antwort
Letzter Beitrag: Donnerstag, 22. April 2010 18:05 von alm

Hallo, damit kann man nicht allzu viel anfangen. Soviel ich weiss kann es zuweilen Probleme mit Tabellen-Layouts geben. Dort werden die ... » mehr

Javascript Schriftengröße: Problem bei URL-Übergabe im IE8

Hallo, ich hab eben das Javascript zur Schriftengröße eingebaut, klappt auch wunderbar auf Firefox, aber der IE 8 hat folgendes Problem: - wenn ich ... » mehr

von horst1234 am Dienstag, 23. Februar 2010 13:06 in JavaScript - bisher 1 Antwort
Letzter Beitrag: Dienstag, 23. Februar 2010 14:07 von horst1234

Ich hab das charset im Header geändert (wie in der beispiel.html), und schon klappt es ... » mehr

Dynamisches einfügen von Zeilen in eine Spalte

Hallo, ich möchte gerne eine Zeile zwischen zwei andere Zeilen einfügen. Leider klappt folgender Versuch noch nicht so richtig. Vielleicht kann mir ... » mehr

von Bluecaspar am Mittwoch, 10. Februar 2010 18:09 in JavaScript - bisher 2 Antworten
Letzter Beitrag: Donnerstag, 11. Februar 2010 10:37 von Bluecaspar

Ja genau, das war der Fehler. Vielen Dank Alex. Hier der korrigierte Code: <html> <head> <title> Test ... » mehr

Fenster in Frame erzeugen

Hallo, ich würde gerne ein Fenster in einer Webseite erzeugen. Das Fenster sollte dabei auf ein Frame begrenzt sein, sich also nicht aus diesen ... » mehr

von Bluecaspar am Dienstag, 9. Februar 2010 13:57 in JavaScript - bisher 2 Antworten
Letzter Beitrag: Mittwoch, 10. Februar 2010 09:32 von Bluecaspar

Ja hervorragend, dass ist genau das was ich möchte. Danke ... » mehr

Problem: Kombination mit Lightbox 2

Hallo, ich bin gerade dabei die Galerie mit der Lightbox 2 zu verknüpfen, da ich die Bilder im Vollformat gerne in diesem schicken aufpoppenden ... » mehr

von GoPeter am Montag, 16. November 2009 23:38 in JavaScript - bisher 16 Antworten
Letzter Beitrag: Mittwoch, 18. November 2009 00:32 von GoPeter

Soo...hat lange gedauert...aber jetzt ist es endlich ... » mehr



¬ Insolvenzrecht