Das Ausführen von Anweisungen bzw. -blöcken kann von Bedingungen abhängig gemacht werden:
if (Bedingung)<script language="JavaScript"> <!-- var DuBistEin = (Antwort == "42") ? "Genie" : "Dummkopf"; alert("Deine Antwort zeigt mir, dass Du ein " + DuBistEin + " bist!"); // --> </script>
<script language="JavaScript"> <!-- var Passwort = "Traumtaenzer"; var UserEingabe = ""; var Zaehler = 0; while((UserEingabe != Passwort)&&(Zaehler <= 3)) { UserEingabe = window.prompt(Zaehler + ". Versuch: geben Sie das Passwort ein",""); Zaehler++; } if(UserEingabe != Passwort) history.back(); else document.location.href="geheim.htm"; // --> </script>
Eine while- Schleife wird mit while eingeleitet, dahinter folgt in Klammern die Bedingung. Solange diese wahr (=true) ist, wird die Schleife ausgeführt, ansonsten (falsch/ false) abgebrochen.
Bei Schleifen ist darauf zu achten, dass sie irgendwann auch beendet werden. Meistens wird zu diesem Zweck eine Variable definiert, welche dann mit jedem Schleifendurchgang erhöht wird, so dass die Bedingung mit der Zeit einen false- Wert ergibt (oben: var Zaehler).
Unterschied zu while- Schleifen: es wird erst am Ende jedes Schleifendurchlaufs geprüft, ob die Endbedingung wahr oder falsch ist. Eine do...while- Schleife wird daher mindestens ein Mal ausgeführt, auch wenn die Bedingung von Anfang an falsch ist.
Einmal so: <script language="JavaScript"> <!-- var x = 10; do { document.write("<br>x * x = " + (x * x)); x = x + 1; } while(x < 10); // --> </script> Und einmal so: <script language="JavaScript"> <!-- var x = 10; while(x < 10) { document.write("<br>x * x = " + (x * x)); x = x + 1; } // --> </script>
<html><head><title>Test</title> </head><body> <script language="JavaScript"> <!-- for(i = 1; i <= 100; i++) { var x = i * i; document.write("<br>Das Quadrat von " + i + " ist " + x); // --> </script>
Die Definition von for- Schleifen entspricht derjenigen in C (3 Anweisungen: 1. Anfangswert, 2. Endwert/ Abbruchbedingung, 3. Anweisung, um 2. zu erreichen).
<script language="JavaScript"> <!-- Eingabe = window.prompt("Zahl zwischen 1 und 3",""); switch(Eingabe) { case "1": alert("Sie sind sehr bescheiden"); break; case "2": alert("Sie sind ein aufrichtiger Zweibeiner"); break; case "3": alert("Sie haben ein Dreirad gewonnen"); break; default: alert("Sie bleiben leider dumm"); break; } // --> </script>
<script language="JavaScript"> <!-- var i = 0; while (i < 6) { if (i == 3) break; i++; } alert("i = " + i); // --> </script>
<script language="JavaScript"> <!-- var i = 0, j = 0; while (i < 6) { i++; if (i == 3) continue; j++; } alert("i ist gleich " + i + " und j ist gleich " + j); // --> </script>
Wie in C kann bei break auch ein Label vergeben werden.
<script language="JavaScript"> <!-- var i = 0; while (i < 6) { Ende: if (i == 3) { alert("Schluss- i ist gleich " + i); break Ende; } i++; } // --> </script>
Erst ab Javascript 1.2 (Fehlermeldungen bei NN < 4.x und IE < 5)!) - und (Zitat SelfHTML): "So stellen Sie im Beispiel sicher, daß sich die break-Anweisung auf jeden Fall auf jene if-Abfrage bezieht, in der abgefragt wird, ob i gleich 3 ist. In einfachen Fällen wie im obigen Beispiel ist das eigentlich überflüssig. Aber behalten Sie die Möglichkeit im Auge, falls Sie einmal verschachtelte if-Abfragen innerhalb von Schleifen programmieren und dort auch break-Anweisungen benutzen."