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

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