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

Probleme mit iphone

Hallo, ich habe ein Problem bei der Darstellung einer Webseite. In allen Browsern hat das bisher bestens funktioniert außer beim iPhone und iPad, wo ... » mehr

von Finlay am Dienstag, 10. Juli 2012 19:45 in JavaScript - noch nicht beantwortet

Stream musik

Hallo, ich bin auf der Suche nach einem Script, mit dem ich einen Leser für Audio-Spuren in eine Html-Webseite einfügen kann. Ich brauche dabei ... » mehr

von Finlay am Sonntag, 22. Januar 2012 22:52 in JavaScript - bisher 2 Antworten
Letzter Beitrag: Dienstag, 8. Mai 2012 16:04 von maharadja

ich habe das mal mit jplayer probiert und bei mir gings ... » mehr

Byte Array PDF im Browser anzeigen

Hallo, ich bekomme von einem Webservice ein PDF als Byte Array. Mit einem JsonP Request habe ich das Byte Array so wie es ist (als Array von Bytes) ... » mehr

von TiloS am Mittwoch, 11. April 2012 17:37 in JavaScript - noch nicht beantwortet

Überbelnd effect in javascript gallerie

ich habe hier einie gallerie die funktioniert problem los aber hat noch kein über belnd effect jedoch würde ich diesen gerne einfügen aber ich habe ... » mehr

von faebe am Freitag, 20. Januar 2012 20:19 in JavaScript - noch nicht beantwortet

XML per JavaScript verarbeiten - IE

Hallo! Vielen Dank für das super kommentierte Script-Beispiel zur Weiterverarbeitung von XML-Dateien per JavaScript: ... » mehr

von gn0me am Freitag, 11. März 2011 19:03 in JavaScript - noch nicht beantwortet


¬ Insolvenzrecht