JavaScript Do-While-Schleife

Anders als bei der kopfgesteuerten Variante der While-Schleife handelt es sich bei der Do-While-Schleife um eine Fußgesteuerte Schleife. Dies bedeutet, dass die Schleifenbedingung nicht schon vor dem Eintreten in den Schleifenkörper geprüft wird, sondern erst nachdem der Schleifenkörper zum ersten mal ausgeführt wurde. Eine einmalige Ausführung der Schleife ist also damit garantiert, während die While-Schleife nicht unbedingt ausgeführt wird.

Auch die For-Schleife und ihre Varianten, die For-Each-Schleife und die For-In-Schleife sind kopfgesteuert. Bei diesen wird die Schleifenbedingung, ebenso wie bei der While-Schleife, vor Eintritt in den Schleifenkörper abgefragt. Welche der in JavaScript verfügbaren Schleifenvarianten in einem speziellen Fall eingesetzt werden muss, hängt von der zu implementierenden Problemstellung ab.

JavaScript do while Beispiel:

Im unten stehenden JavaScript-Code wird das Do-While-Statement demonstriert. Die geschweiften Klammern, die den Schleifenkörper umschliessen, können in diesem Beispiel auch weggelassen werden, da im vorliegenden Fall lediglich eine einzige Anweisung im Schleifenkörper ausgeführt wird.

Bei der ersten im Script notierten Schleife hat i bei Eintritt in die Schleife den Wert 0. Im ersten Durchgang wird der Summe also der Wert 0 hinzuaddiert. Erst jetzt folgt die Auswertung der Schleifenbedingung – sie ist gegeben – und i wird um eins erhöht (i++: NACH Auswertung des Ausdrucks wird i erhöht; ++i: VOR Auswertung wird erhöht).

Da die Schleifenbedingung erfüllt ist, wird die Schleife nun erneut ausgeführt. Dieser Vorgang wird solange wiederholt, bis die Variable i den Wert 10 erreicht hat und die Schleifenbedingung somit nicht mehr gegeben ist. Der Wert von i wird im Beispiel jeweils nach Auswertung der Schleifenbedingung inkrementiert, wodurch i nach der Schleife den Wert 11 enthält.

Nach der Schleife werden die errechnete Summe, sowie der aktuell in i gespeicherte Wert ausgegeben. Hierzu wird write(), eine Methode des Document-Object, verwendet die Ausgaben in einem HTML-Dokument ermöglicht. Auch die zweite Do-While-Anweisung wird zumindest einmal ausgeführt. Hier wird der aktuelle Wert von i zur Summe addiert. Die danach folgende Schleifenbedingung ist aber nicht erfüllt, was dazu führt, dass die Schleife nicht ein weiteres mal ausgeführt wird. Durch i++ in der Schleifenbedingung wird i nach Auswertung des Ausdrucks (hier 11 < 10 = FALSE) wiederum um eins inkrementiert – i hat also am Ende den Wert 12. Zum Schluß wird wieder per document.write() die Summe und der aktuelle Wert von i ausgegeben.

<script language="javascript" type="text/javascript">
<!-- // JavaScript-Bereich für ältere Browser auskommentieren
// In sum wird die Summe der Werte gespeichert, die
// i in den While-Schleifen annimmt.
var sum = 0;
// Variable, die als Zähler verwendet wird
var i = 0;

// Hier wird in der Schleife die Summe gebildet
do {
  sum += i;
// Schleifenbedingung am Fuß der Schleife abfragen
} while (i++ < 10);
// Ausgabe der errechneten Summe
document.write ('sum: ' + sum + '<br>');

// i hat an dieser Stelle bereits den Wert 11 angenommen
document.write ('i: ' + i + '<br>');
// Unbedingter Eintritt in die Schleife
do {
  sum += i;
// Schleifenbedingung ist nach einmaliger Ausführung nicht
// erfüllt, was zur Folge hat, dass die Schleife nicht ein
// weiteres mal ausgeführt wird.
} while (i++ < 10);
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