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;
}
Gib mir eine Zahl zwischen 0 und 6
<input type="number" name="stop" id="stop" />
<button>Schleife starten und abbrechen</button>
<div class="result"></div>
…
<script>
document.querySelector('button').onclick = function() {
let text = "";
for (let i=0; i<7; i++) {
// Abbrechen?
if (i === parseInt(document.getElementById('stop').value)) {
break;
}
text = text + i + '<br>';
}
// Ausgabe
document.querySelector('.result').innerHTML = text;
}
</script>
Wenn i den Wert annimmt, der in das Eingabefeld eingegeben wurde, beendet das Skript die Ausführung der for-Anweisung.
text = text + i + '<br>' wird nicht mehr ausgeführt und das Skript springt zu den Anweisungen, die dem for-Block folgen.
let x = 0;
let rVal = "";
do {
if (aName[x]) {
if (parseInt(aName[x]) == NaN) {
rVal = "Bad Value";
break;
}
bName[x] = someProc(aName[x]);
}
x++;
}
while (aName[x]);
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.
Gib mir eine Zahl zwischen 0 und 6
<script>
"use strict";
document.querySelector ('button').addEventListener ('click', function () {
let text = "";
let b = parseInt(document.querySelector('input').value);
for (let i=0; i<7; i++) {
if (i === b) {
continue;
}
text = text + i + '<br>';
}
document.querySelector('result').innerHTML = text;
});
</script>
- Wenn continue ohne label verwendet wird, beendet continue die aktuelle Iteration der inneren while-, do…while oder for-Anweisung und setzt die Ausführung der Schleife mit der nächsten Iteration durch. Anders als die break-Anweisung springt contiunue zurück zur Bedingung. In einer for-Anweisung springt continue zurück zum Increment-Ausdruck.
// Alle ausgewählten Dateien durchlaufen for (let i = 0; i < files.length; i++) { let file = files[i]; // Kein Bild, also nachfolgende Anweisungen überspringen, aber weitermachen if (!file.type.match('image.*')) { continue; } // Datei in den Request setzen formData.append('photos[]', file, file.name); }
- Wenn continue mit label benutzt wird, bezieht es sich auf die Schleifenanweisung, die durch label identifiziert wird.
continue kann eine while-, do ... while-, for- oder label-Anweisung erneut zu starten.
let i = 0;
let val = 0;
while (i < 3) {
i++;
if (i==3) {
continue;
}
val += i;
}
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.