Die while-Schleife
Stell dir vor, du sollst die Zahlen von 1 bis 100 ausgeben. Du könntest hundertmal console.log() schreiben, aber das würde ewig dauern, und später etwas zu ändern wäre noch schlimmer. Programme müssen solche Arbeit ständig wiederholen: jeden Schüler einer Liste durchgehen, jedes Produkt in einem Shop prüfen oder den Bildschirm eines Spiels 60-mal pro Sekunde neu zeichnen. Dafür sind Schleifen da. Eine Schleife ist ein Stück Code, das immer wieder ausgeführt wird.
Die einfachste Schleife ist while (englisch für „solange“). Sie wiederholt einen Codeblock, solange ihre Bedingung wahr ist:
let zahl = 1;
while (zahl <= 5) {
console.log(zahl);
zahl = zahl + 1;
}Das gibt Folgendes aus:
1
2
3
4
5Eine while-Schleife sieht aus wie ein if: das Schlüsselwort, eine Bedingung in runden Klammern und ein Codeblock in geschweiften Klammern. Der Unterschied ist, dass if seinen Block höchstens einmal ausführt, while aber immer wieder zur Bedingung zurückkehrt. Schritt für Schritt:
- Das Programm erstellt
zahlmit dem Wert1. - Es prüft die Bedingung
zahl <= 5. Sie isttrue, also führt es den Block aus: Es gibt1aus und erhöhtzahlauf2. - Es geht zurück zur Bedingung.
2 <= 5ist immer nochtrue, also gibt es2aus und erhöhtzahlauf3. - Und so weiter, bis
zahlgleich6ist. Dann ist die Bedingungfalse, die Schleife endet, und das Programm macht mit dem Code nach der Schleife weiter.
Jeder Lauf des Blocks heißt Durchlauf (oder Iteration). Diese Schleife hat fünf Durchläufe. Um die Zahlen bis 100 auszugeben, müsstest du nur 5 in 100 ändern.
Vorsicht vor Schleifen, die nie enden. Wenn du die Zeile zahl = zahl + 1; vergisst, bleibt zahl gleich 1, die Bedingung ist immer wahr, und die Schleife gibt für immer 1 aus. Das nennt man eine Endlosschleife. In diesen Übungen wird ein solches Programm nach 5 Sekunden mit der Meldung Das Programm lief zu lange und wurde angehalten. Enthält es eine Schleife, die nie endet? angehalten. Wenn du sie siehst, prüfe, ob die Schleife die Variable in ihrer Bedingung ändert, sodass die Bedingung irgendwann falsch wird.
So schreibst du es:
Anweisungen
- 1
Erstelle eine Variable
zahlmit dem Wert10. Verwendelet, weil die Schleife ihren Wert ändern wird. - 2
Schreibe darunter eine
while-Schleife, die läuft, solangezahlkleiner oder gleich20ist. Gib in der Schleifezahlaus und erhöhe sie dann um 1. Das Programm gibt die Zahlen von 10 bis 20 aus, jede in einer eigenen Zeile. - 3
Ändere jetzt eine Zahl in deinem Code, sodass die Schleife alle Zahlen von 10 bis 100 ausgibt.