Die for-Schleife
Die meisten Schleifen zählen durch eine Folge von Zahlen: von 1 bis 10 oder durch die Indizes eines Arrays. Bei einer while-Schleife ist das Zählen auf drei Stellen verteilt: Die Variable wird vor der Schleife erstellt, die Bedingung steht oben, und die Änderung steht am Ende des Blocks. Die for-Schleife bringt alle drei in eine Zeile, sodass du auf einen Blick siehst, wie die Schleife zählt:
for (let i = 1; i <= 3; i++) {
console.log(i);
}Das gibt Folgendes aus:
1
2
3Sie macht genau dasselbe wie diese while-Schleife:
let i = 1;
while (i <= 3) {
console.log(i);
i++;
}In den Klammern nach for stehen drei Teile, durch Semikolons getrennt:
let i = 1ist der Start. Er wird einmal vor dem ersten Durchlauf ausgeführt und erstellt den Zähleri.i <= 3ist die Bedingung. Sie wird vor jedem Durchlauf geprüft. Solange sie wahr ist, wird der Block ausgeführt; ist sie falsch, endet die Schleife.i++ist der Schritt. Er wird nach jedem Durchlauf ausgeführt und zählt weiter.
Die Reihenfolge ist also: Start, Bedingung, Block, Schritt, Bedingung, Block, Schritt … bis die Bedingung falsch ist. Die Teile werden durch Semikolons getrennt, nicht durch Kommas. Mit Kommas bekommst du einen SyntaxError.
Der Zähler heißt meist i (für „Index“), aber jeder Name funktioniert. Der Schritt kann jede Änderung sein: i += 2 zählt in Zweierschritten, und i-- zählt abwärts:
for (let i = 3; i > 0; i--) {
console.log(i);
}3
2
1Warum let und nicht const? Der Zähler ist eine einzelne Variable, die der Schritt nach jedem Durchlauf ändert: i++ ändert sie von 1 auf 2 und dann auf 3. Eine const lässt sich nicht ändern, also gibt for (const i = 1; i <= 3; i++) 1 aus und stoppt dann mit TypeError: Assignment to constant variable.
Welche Schleife solltest du wählen? for, wenn du weißt, wie oft die Schleife läuft: von 1 bis 10 oder einmal für jedes Element eines Arrays. while, wenn du es vorher nicht weißt, zum Beispiel um eine Zahl so lange zu verdoppeln, bis sie größer als 1000 ist:
let zahl = 1;
let verdopplungen = 0;
while (zahl <= 1000) {
zahl = zahl * 2;
verdopplungen++;
}
console.log("Verdopplungen:", verdopplungen);
console.log("Zahl:", zahl);Verdopplungen: 10
Zahl: 1024So schreibst du es:
Anweisungen
- 1
Schreibe die
while-Schleife im Editor alsfor-Schleife um und lösche diewhile-Schleife. Das Programm gibt weiterhin die Zahlen von 1 bis 5 aus. - 2
Ändere deine
for-Schleife so, dass sie die Zahlen von 15 bis 20 ausgibt, einschließlich 20.