While-Schleife
Bei for stecken Start, Bedingung und Update in einem Kopf. Manchmal kennst du nur die Regel „weiter, solange das gilt“ — und der Zähler ändert sich mitten in der Arbeit. while prüft zuerst eine Bedingung, führt den Rumpf aus, prüft erneut. Dieselbe Wiederholung; andere Form auf der Seite.
Was macht while?
Solange der Ausdruck in den Klammern wahr bleibt, läuft der Block { } erneut. Im Kopf gibt es keinen eigenen Slot für Init oder Update. Variablen bereitest du vor der Schleife vor und änderst sie im Rumpf, bis die Bedingung falsch wird. Dann endet die Schleife und es geht mit der nächsten Anweisung weiter.
while, for und do...while im Überblick
📊 Alltägliche Schleifenformen
| Form | Wann sie passt | Bedingungsprüfung |
|---|---|---|
while |
weiter, solange eine Regel gilt; Update im Rumpf | vor jeder Runde |
for |
Start, Stopp und Schritt sind klar | vor jeder Runde (Dreiteil-Kopf) |
do...while |
Rumpf muss mindestens einmal laufen | nach jeder Runde |
Anfänger-while nutzt oft weiter einen kleinen Zähler. Der Unterschied ist der Ort: let i = 0 steht vor der Schleife, i++ (oder eine andere Änderung) in den geschweiften Klammern. Ändert du nie, was die Bedingung liest, endet die Schleife vielleicht nie.
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
Mit while zählen
i startet vor der Schleife bei 0. Jede Runde gibt i aus und addiert eins. Du siehst 0 bis 4 — fünf Runden. 5 erscheint nicht, weil die Bedingung zuerst scheitert. Ohne i++ im Rumpf bliebe i für immer 0.
Lies eine Runde langsam: Bedingung → Rumpf (inkl. Update) → wieder Bedingung. Deshalb ist ein vergessenes Update die klassische Endlosschleifen-Falle bei while.
let n = 1;
while (n <= 3) {
console.log("step " + n);
n++;
}
Ab 1 mit klaren Labels
Hier startet der Zähler bei 1 und die Bedingung nutzt n <= 3; du siehst step 1, step 2, step 3. Ob bei 0 oder 1 — Designwahl; die Bedingung muss dazu passen, genau wie bei for.
let total = 0;
let k = 1;
while (k <= 4) {
total = total + k;
k++;
}
console.log(total);
Summe Runde für Runde
total beginnt bei 0. Jede Runde addiert das aktuelle k und erhöht danach k. Nach 1+2+3+4 ist total gleich 10. Das wachsende Ergebnis liegt außerhalb; der Zähler für die Bedingung daneben.
let left = 3;
while (left > 0) {
console.log("left=" + left);
left--;
}
console.log("done");
Herunterzählen bis zum Stopp
Nicht jede Schleife geht nur hoch. Diese gibt left=3, left=2, left=1 aus, dann done. Zu verringern ist ebenfalls ein ehrliches Update — jede Änderung, die zum Ende führt, ist in Ordnung.
let x = 0;
do {
console.log("tick " + x);
x++;
} while (x < 1);
console.log("after=" + x);
do...while führt den Rumpf zuerst aus
do...while läuft den Rumpf einmal und prüft erst danach. Selbst wenn die Bedingung für ein normales while schon falsch wäre, passiert die erste Runde. Hier siehst du tick 0, dann after=1. Nutze es, wenn „einmal versuchen, dann ggf. wiederholen“ zur Geschichte passt.
while-Ergebnis auf der Seite zeigen
Kurzes Zählen mit while, Nachricht bauen, auf die Seite schreiben.
<!DOCTYPE html>
<html>
<head>
<title>While — page count</title>
</head>
<body>
<p id="out">…</p>
<script>
let msg = "";
let i = 1;
while (i <= 4) {
msg = msg + i + " ";
i++;
}
let box = document.getElementById("out");
box.textContent = "count=" + msg.trim();
</script>
</body>
</html>
Die Seite zeigt count=1 2 3 4. Ändere die Obergrenze, lade neu, lies die neue Liste. Bevorzuge for, wenn der Dreiteil-Plan klar ist; bevorzuge while, wenn die Stoppregel als eine Bedingung mit Update im Rumpf klarer ist. Als Nächstes: Werte und Schlüssel mit for...of und for...in.
Selbst ausprobieren
- Schreibe ein
while, das0…4miti < 5undi++im Rumpf loggt. - Ändere es so, dass
1…5miti <= 5geloggt werden. - Summiere
1…5mitwhileintotalund logge das Ergebnis. - Zähle von
5bis1herunter, dann loggedone. - Schreibe ein
do...while, das eine Zeile druckt, auch wenn die Bedingung falsch startet. - In der HTML-Demo nur die Obergrenze ändern, neu laden,
count=lesen.
Typische Fehler
- Update im Rumpf vergessen, sodass die Bedingung nie falsch wird (Endlosschleife)
- Um-eins-daneben:
i < 5statti <= 5(oder umgekehrt) do...whilewählen, wenn wirklich null Runden möglich sein sollen- Update an der falschen Stelle oder eine andere Variable ändern als die Bedingung liest
- Langes
while, obwohl ein klarerfor-Kopf lesbarer wäre
Kurzfassung
whilewiederholt den Block, solange die Bedingung wahr ist- Variablen vorbereiten, im Rumpf aktualisieren
- Gut zum Zählen, Summieren und Herunterzählen
do...whileläuft mindestens einmal, dann Prüfungforbei klarem Start/Stopp/Schritt;whilebei einer laufenden Regel- Als Nächstes: for...of und for...in — über Werte und Schlüssel laufen
🧠 Testen Sie Ihr Wissen
Testen Sie Ihr Wissen
Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen
📝 Anweisungen
- Lesen Sie jede Frage sorgfältig
- Wählen Sie die beste Antwort für jede Frage
- Sie können das Quiz so oft wiederholen, wie Sie möchten
- Ihr Fortschritt wird oben angezeigt