break

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 break-Anweisung beendet die aktuelle Schleife oder switch-Anweisung und überträgt die Programmausführung auf die Anweisung, die der beendeten Anweisung folgt. Sie kann auch verwendet werden, um eine markierte Anweisung zu überspringen, wenn sie innerhalb dieser markierten Anweisung verwendet wird.

Probieren Sie es aus

let i = 0;

while (i < 6) {
  if (i === 3) {
    break;
  }
  i = i + 1;
}

console.log(i);
// Expected output: 3

Syntax

js
break;
break label;
label Optional

Kennzeichen, das mit dem Label der Anweisung verbunden ist, zu der abgebrochen werden soll. Wenn die break-Anweisung nicht innerhalb einer Schleife oder switch geschachtelt ist, ist der Label-Identifikator erforderlich.

Beschreibung

Wenn break; gefunden wird, bricht das Programm aus der innersten switch- oder Schleifen- Anweisung aus und setzt die Ausführung mit der nächsten Anweisung fort.

Wenn break label; gefunden wird, bricht das Programm aus der mit label gekennzeichneten Anweisung aus und setzt die Ausführung mit der nächsten Anweisung fort. Die break-Anweisung muss innerhalb des referenzierten Labels geschachtelt sein. Die gekennzeichnete Anweisung kann beliebige Anweisungen sein (häufig eine block-Anweisung); sie muss keine andere Schleifenanweisung sein.

Eine break-Anweisung, 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 weiter innerhalb einer Schleife enthalten ist.

Beispiele

break in einer while-Schleife

Die folgende Funktion enthält eine break-Anweisung, die die while-Schleife beendet, wenn i 3 ist, und dann den Wert 3 * x zurückgibt.

js
function testBreak(x) {
  let i = 0;

  while (i < 6) {
    if (i === 3) {
      break;
    }
    i += 1;
  }

  return i * x;
}

break in switch-Anweisungen

Der folgende Code enthält eine break-Anweisung, die die switch-Anweisung beendet, wenn ein Fall zutrifft und der entsprechende Code ausgeführt wurde.

js
const food = "sushi";

switch (food) {
  case "sushi":
    console.log("Sushi is originally from Japan.");
    break;
  case "pizza":
    console.log("Pizza is originally from Italy.");
    break;
  default:
    console.log("I have never heard of that dish.");
    break;
}

break in markierten Blöcken

Der folgende Code verwendet break-Anweisungen mit markierten Blöcken. Durch die Verwendung von break outerBlock wird die Steuerung zum Ende des als outerBlock markierten Blockes weitergeleitet.

js
outerBlock: {
  innerBlock: {
    console.log("1");
    break outerBlock; // breaks out of both innerBlock and outerBlock
    console.log(":-("); // skipped
  }
  console.log("2"); // skipped
}

Nicht-syntaktische break-Anweisungen

Eine break-Anweisung muss innerhalb eines beliebigen Labels geschachtelt sein, das sie referenziert. Der folgende Code verwendet ebenfalls break-Anweisungen mit markierten Blöcken, erzeugt jedoch einen Syntaxfehler, da seine break-Anweisung block2 referenziert, aber nicht innerhalb von block2 geschachtelt ist.

js
block1: {
  console.log("1");
  break block2; // SyntaxError: label not found
}

block2: {
  console.log("2");
}

Syntaxfehler werden auch in den folgenden Codebeispielen erzeugt, die break-Anweisungen innerhalb von Funktionen verwenden, die in einer Schleife geschachtelt sind, oder markierten Blöcken, aus denen die break-Anweisungen ausbrechen sollen.

js
function testBreak(x) {
  let i = 0;

  while (i < 6) {
    if (i === 3) {
      (() => {
        break;
      })();
    }
    i += 1;
  }

  return i * x;
}

testBreak(1); // SyntaxError: Illegal break statement
js
block1: {
  console.log("1");
  (() => {
    break block1; // SyntaxError: Undefined label 'block1'
  })();
}

Spezifikationen

Specification
ECMAScript® 2025 Language Specification
# sec-break-statement

Browser-Kompatibilität

Siehe auch