Javascript break, continue und label

break continue

Javascript break bricht die weitere Ausführung einer Schleife oder Iteration ab und übergibt die Steuerung des Programms an die Anweisungen nach dem Ende der Bedingung. Zusammen mit continue erlaubt break, Anweisungen zu überspringen.

23-02-02 SITEMAP CSS HTML JS Basis JS Web Tutorial SVG

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.