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 die switch
-Anweisung und überträgt die Programmausführung auf die Anweisung nach der beendeten Anweisung. Sie kann auch verwendet werden, um eine markierte Anweisung zu überspringen, wenn sie innerhalb dieser markierten Anweisung verwendet wird.
Probieren Sie es aus
Syntax
break;
break label;
label
Optional-
Bezeichner, der mit dem Label der Anweisung verbunden ist, zu der gebrochen wird. Wenn die
break
-Anweisung nicht innerhalb einer Schleife oder einesswitch
verschachtelt ist, ist der Label-Bezeichner erforderlich.
Beschreibung
Wenn break;
auftritt, bricht das Programm aus der innersten switch
- oder Schleifen- Anweisung aus und setzt die Ausführung der nächsten Anweisung danach fort.
Wenn break label;
auftritt, bricht das Programm aus der mit label
gekennzeichneten Anweisung aus und setzt die Ausführung der nächsten Anweisung danach fort. Die break
-Anweisung muss innerhalb des referenzierten Labels verschachtelt sein. Die markierte Anweisung kann jede Anweisung sein (häufig eine Block-Anweisung); sie muss keine weitere Schleifenanweisung sein.
Eine break
-Anweisung, mit oder ohne folgendes Label, kann nicht auf der obersten Ebene eines Skripts, Moduls, Funktionskörpers oder eines statischen Initialisierungsblocks verwendet werden, selbst wenn die Funktion oder Klasse weiter in 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.
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.
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 Kontrolle an das Ende der als outerBlock
markierten Blockanweisung übertragen.
outerBlock: {
innerBlock: {
console.log("1");
break outerBlock; // breaks out of both innerBlock and outerBlock
console.log(":-("); // skipped
}
console.log("2"); // skipped
}
Unsynaktische break
-Anweisungen
Eine break
-Anweisung muss innerhalb eines referenzierten Labels verschachtelt sein. Der folgende Code verwendet auch break
-Anweisungen mit markierten Blöcken, erzeugt jedoch einen Syntaxfehler, da seine break
-Anweisung auf block2
verweist, aber nicht innerhalb von block2
verschachtelt ist.
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 verschachtelt sind oder markierte Blöcke, aus denen die break
-Anweisungen auszubrechen versuchen.
function testBreak(x) {
let i = 0;
while (i < 6) {
if (i === 3) {
(() => {
break;
})();
}
i += 1;
}
return i * x;
}
testBreak(1); // SyntaxError: Illegal break statement
block1: {
console.log("1");
(() => {
break block1; // SyntaxError: Undefined label 'block1'
})();
}
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-break-statement |
Browser-Kompatibilität
BCD tables only load in the browser