Signatur
Beschreibung
Die continue-Anweisung beendet die Ausführung der Anweisungen in der aktuellen Iteration der aktuellen oder gelabelten Schleife und setzt die Ausführung der Schleife mit der nächsten Iteration fort.
Im Gegensatz zur break-Anweisung beendet continue die Ausführung der Schleife nicht vollständig, sondern:
- In einer
while- oderdo...while-Schleife springt sie zurück zur Bedingung. - In einer
for-Schleife springt sie zum Update-Ausdruck. - In einer
for...in-,for...of- oderfor await...of-Schleife springt sie zur nächsten Iteration.
Die continue-Anweisung kann ein optionales Label enthalten, das es dem Programm ermöglicht, zur nächsten Iteration einer gelabelten Schleifenanweisung zu springen anstatt zur innersten Schleife. In diesem Fall muss die continue-Anweisung innerhalb dieser gelabelten Anweisung verschachtelt sein.
Eine continue-Anweisung, mit oder ohne folgendem Label, kann nicht auf der obersten Ebene eines Skripts, Moduls, Funktionsrumpfs oder static initialization block verwendet werden, auch wenn die Funktion oder Klasse weiter in einer Schleife enthalten ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $label | Identifier | — | Bezeichner, der mit dem Label der Anweisung verknüpft ist. |
Rückgabewert
Beispiele
continue mit while verwenden
let i = 0;
let n = 0;
while (i < 5) {
i++;
if (i === 3) {
continue;
}
n += i;
}
continue mit einem Label verwenden
let i = 0;
let j = 8;
checkIAndJ: while (i < 4) {
console.log(`i: ${i}`);
i += 1;
checkJ: while (j > 4) {
console.log(`j: ${j}`);
j -= 1;
if (j % 2 === 0) continue;
console.log(`${j} is odd.`);
}
console.log(`i = ${i}`);
console.log(`j = ${j}`);
}
continue über Funktionsgrenzen hinweg (ungültig)
for (let i = 0; i < 10; i++) {
(() => {
continue; // SyntaxError: Illegal continue statement: no surrounding iteration statement
})();
}
Label muss die continue-Anweisung enthalten (ungültig)
label: for (let i = 0; i < 10; i++) {
console.log(i);
}
for (let i = 0; i < 10; i++) {
continue label; // SyntaxError: Undefined label 'label'
}
Gelabelte Anweisung muss eine Schleife sein (ungültig)
label: {
for (let i = 0; i < 10; i++) {
continue label; // SyntaxError: Illegal continue statement: 'label' does not denote an iteration statement
}
}
// Wichtig · Fallstricke
Nicht in Callbacks: continue funktioniert nicht innerhalb von Callback-Funktionen wie Array.prototype.forEach(), Array.prototype.map() usw. – der Interpreter wirft dort einen SyntaxError. Verwende dort stattdessen ein frühes return im Callback oder wechsle auf eine reguläre for…of-Schleife.
Labels sparsam einsetzen: Label-basiertes continue kann den Kontrollfluss schwer nachvollziehbar machen. In vielen Fällen ist das Auslagern der inneren Schleife in eine eigene Funktion mit einem frühen return die lesbarere Alternative.
Browser-/Laufzeit-Kompatibilität: continue (mit und ohne Label) ist seit ES1 standardisiert und wird in allen gängigen Browsern, Node.js und Deno vollständig unterstützt.