Javascript break, continue und label
Javascript break bricht die weitere Ausführung einer Schleife oder Iteration ab und übergibt die Steuerung an die Anweisungen nach dem Ende der Bedingung. Zusammen mit continue erlaubt break, Anweisungen zu überspringen. Auch wenn break, continue und label wie ein Relikt aus alten JavaScript-Zeiten klingt: Sie haben noch ihren Platz.
break
break kann nur innerhalb von switch, while und for-Schleifen verwendet werden. Innerhalb sequentieller Anweisungen führt break zu einer Fehlermeldung wie 'break is only valid inside a switch or loop statement'.
break bricht Schleifen z.B. bei einem Fehler ab oder wenn eine außergewöhnliche Bedingung eintritt, die in der Schleifen-Bedingung nicht getestet wird.
if (weitere Bedingung) {
break;
}
const fields = [
{ name: "email", valid: true },
{ name: "password", valid: true },
{ name: "age", valid: false },
{ name: "terms", valid: true }
];
let firstInvalid = null;
for (const field of fields) {
if (!field.valid) {
firstInvalid = field;
break; // ← sofort abbrechen
}
}
console.log(firstInvalid);
// { name: "age", valid: false }
Hier macht ein break Sinn, denn nur das erste Problem wird gebraucht, danach wäre jede weitere Prüfung überflüssig. Das Skript ist leicht zu lesen, denn der Code sagt: »Stop, das Ziel ist erreicht«.
Es gibt schon modernere Varianten, z.B. mit array.find(). Das ist logisch identisch und kürzer.
const firstInvalid = fields.find(f => !f.valid);
switch und break
switch case ohne break ist eigentlich so gut wie immer ein Fehler.
switch (type) {
case "a":
doA();
break;
case "b":
doB();
break;
}
Javascript continue
if (weitere Bedingung) {
continue;
}
Unter einer Bedingung, die nicht in einer while- oder for-Anweisung abgefragt wird, überspringt die for- oder while-Anweisung durch continue einen Anweisungsblock und führt anschließend die Anweisungen in normaler Weise weiter aus.
const logs = [
"",
"INFO App gestartet",
"DEBUG Cache aufgebaut",
"WARN Speicher fast voll",
"",
"ERROR Datenbank nicht erreichbar",
"INFO Benutzer angemeldet"
];
for (const line of logs) {
if (!line) continue; // 1️⃣ überspringen
if (line.startsWith("ERROR")) { // 2️⃣ harter Abbruch
console.error("Abbruch wegen Fehler:", line);
break;
}
console.log("OK:", line);
}
continue behandelt hier einen Sonderfall, verhindert Verschachtelung und sagt klar: »Diese Zeile ist egal«. Das break markiert eine finale Bedingung und danach macht eine weitere Iterieren keinen Sinn.
Javascript label-Anweisung
label: Anweisungen;
Mittels einer label-Anweisung kann das Skript bei einer break-Anweisung die Anweisungen eines tief verschachtelten Blocks verlassen und an der markierten Stelle im Code fortfahren oder bei einer continue-Anweisung einen ganzen Durchlauf überspringen.
Der Wert von label ist frei wählbar, darf aber kein reserviertes Wort sein.