Start · Sprachen · JavaScript · Referenz · continue

continue

Anweisung

Die <code>continue</code>-Anweisung beendet die aktuelle Iteration einer Schleife und setzt die Ausführung mit der nächsten Iteration fort.

seit JavaScript ES1 Kategorie: syntax

Signatur

continue; / continue label;

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- oder do...while-Schleife springt sie zurück zur Bedingung.
  • In einer for-Schleife springt sie zum Update-Ausdruck.
  • In einer for...in-, for...of- oder for 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

Typ
void
Beschreibung
Erzeugt keinen Wert; steuert ausschließlich den Programmfluss.

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}`);
}
i: 0 // start checkJ j: 8 7 is odd. j: 7 j: 6 5 is odd. j: 5 // end checkJ i = 1 j = 4 i: 1 i = 2 j = 4 i: 2 i = 3 j = 4 i: 3 i = 4 j = 4

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.

Siehe auch