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.