Die continue-Anweisung in JavaScript
Es gibt auch die continue-Anweisung,
die eine neue Iteration der Schleife startet. Diese
Anweisung kann manchmal nützlich sein, um
den Code zu vereinfachen, obwohl sich die Aufgabe
fast immer auch ohne sie lösen lässt. Lassen Sie uns
ein praktisches Beispiel ansehen.
Nehmen wir an, wir haben ein Array mit Zahlen. Lassen Sie uns
dieses mit einer Schleife durchlaufen und die Zahlen, die durch
2 teilbar sind, quadrieren und
in der Konsole ausgeben, und die Zahlen, die durch 3
teilbar sind, kubieren und in der Konsole ausgeben. Hier ist die Lösung
der beschriebenen Aufgabe:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 === 0) {
result = elem * elem;
console.log(result);
} else if (elem % 3 === 0) {
result = elem * elem * elem;
console.log(result);
}
}
Wie Sie sehen, wird die Zeile console.log(result)
zweimal wiederholt. Lassen Sie uns sie
ausserhalb von if platzieren, so:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 === 0) {
result = elem * elem;
} else if (elem % 3 === 0) {
result = elem * elem * elem;
}
console.log(result); // Ausgabe aus der Bedingung herausgezogen
}
Allerdings funktioniert unser Skript jetzt etwas
anders: Es stellt sich heraus, dass auch für normale Elemente,
die nicht durch unser if verarbeitet wurden,
die Ausgabe der Variable result
in der Konsole ausgeführt wird, was laut der Bedingung unserer Aufgabe nicht
erwünscht ist.
Korrigieren wir das Problem, indem wir zu unserem if
eine weitere else-Bedingung hinzufügen,
die für Elemente gilt, die nicht durch 2 und
3 teilbar sind, und rufen dort die Anweisung continue auf,
die uns sofort zu
einem neuen Schleifendurchlauf springen lässt:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 == 0) {
result = elem * elem;
} else if (elem % 3 == 0) {
result = elem * elem * elem;
} else {
continue; // springt zum nächsten Schleifendurchlauf
}
console.log(result); // wird ausgeführt, wenn durch 2 oder 3 teilbar
}
Schreiben Sie eine Schleife, die nur
gerade Zahlen von 1 bis 100 ausgibt
und ungerade Zahlen mit continue überspringt.