continue

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die continue-Anweisung beendet die Ausführung der Anweisungen in der aktuellen Iteration der aktuellen oder benannten Schleife und setzt die Ausführung der Schleife mit der nächsten Iteration fort.

Probieren Sie es aus

Syntax

js
continue;
continue label;
label Optional

Bezeichner, der mit dem Label der Anweisung verknüpft ist.

Beschreibung

Im Gegensatz zur break-Anweisung beendet continue nicht die Ausführung der Schleife vollständig, sondern:

Die continue-Anweisung kann ein optionales Label enthalten, das es erlaubt, zum nächsten Durchlauf einer bezeichneten Schleifenanweisung zu springen, anstatt zur innersten Schleife. In diesem Fall muss die continue-Anweisung innerhalb dieser bezeichneten Anweisung verschachtelt sein.

Eine continue-Anweisung, ob mit oder ohne folgendes Label, kann nicht auf der obersten Ebene eines Skripts, Moduls, Funktionskörpers oder statischen Initialisierungsblocks verwendet werden, selbst wenn die Funktion oder Klasse innerhalb einer Schleife weiter eingeschlossen ist.

Beispiele

Verwendung von continue mit while

Das folgende Beispiel zeigt eine while-Schleife, die eine continue-Anweisung enthält, die ausgeführt wird, wenn der Wert von i 3 ist. Daher nimmt n die Werte 1, 3, 7 und 12 an.

js
let i = 0;
let n = 0;

while (i < 5) {
  i++;

  if (i === 3) {
    continue;
  }

  n += i;
}

Verwendung von continue mit einem Label

Im folgenden Beispiel enthält eine mit checkIAndJ bezeichnete Anweisung eine mit checkJ bezeichnete Anweisung. Wenn continue angetroffen wird, setzt das Programm am Anfang der checkJ-Anweisung fort. Jedes Mal, wenn continue angetroffen wird, wird checkJ erneut durchlaufen, bis seine Bedingung false zurückgibt. Wenn false zurückgegeben wird, wird der Rest der checkIAndJ-Anweisung abgeschlossen.

Wenn continue ein Label checkIAndJ hätte, würde das Programm am Anfang der checkIAndJ-Anweisung fortfahren.

js
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 checkJ;
    console.log(`${j} is odd.`);
  }
  console.log(`i = ${i}`);
  console.log(`j = ${j}`);
}

Ausgabe:

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

Unsynktaktische continue-Anweisungen

continue kann nicht innerhalb von Schleifen über Funktionsgrenzen hinweg verwendet werden.

js
for (let i = 0; i < 10; i++) {
  (() => {
    continue; // SyntaxError: Illegal continue statement: no surrounding iteration statement
  })();
}

Beim Verweisen auf ein Label muss die bezeichnete Anweisung die continue-Anweisung enthalten.

js
label: for (let i = 0; i < 10; i++) {
  console.log(i);
}

for (let i = 0; i < 10; i++) {
  continue label; // SyntaxError: Undefined label 'label'
}

Die bezeichnete Anweisung muss eine Schleife sein.

js
label: {
  for (let i = 0; i < 10; i++) {
    continue label; // SyntaxError: Illegal continue statement: 'label' does not denote an iteration statement
  }
}

Spezifikationen

Specification
ECMAScript Language Specification
# sec-continue-statement

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch