Break/Continue
Kurz: Zwei Sprunganweisungen, um den normalen Ablauf einer Schleife gezielt zu verändern: break beendet die Schleife sofort komplett, continue überspringt nur den restlichen aktuellen Durchlauf und macht mit dem nächsten weiter.
Genauer: break wird z. B. genutzt, um eine Suche abzubrechen, sobald das gesuchte Element gefunden wurde, statt die restliche Sammlung noch unnötig zu durchlaufen. continue eignet sich, um bestimmte Elemente zu überspringen, ohne die ganze Schleife zu verlassen — etwa um bei einer Liste von Zahlen nur die geraden zu verarbeiten. Beide funktionieren auch in Switch-Statements (dort beendet break den jeweiligen Fall).
Im Detail
# break: Suche sofort abbrechen, sobald gefunden
for zahl in liste:
if zahl == gesucht:
print("Gefunden!")
break # Rest der Liste wird gar nicht mehr geprüft
# continue: nur gerade Zahlen verarbeiten, ungerade überspringen
for zahl in liste:
if zahl % 2 != 0:
continue # Sprung direkt zum nächsten Schleifendurchlauf
verarbeite(zahl)Der Unterschied ist wichtig, um Endlosschleifen zu vermeiden: Bei einer while-Schleife mit continue muss sichergestellt sein, dass die Bedingungsvariable trotzdem noch aktualisiert wird, bevor zum nächsten Durchlauf gesprungen wird — sonst prüft die Schleife immer wieder dieselbe (nie erfüllte) Abbruchbedingung und läuft ewig weiter.
Bei verschachtelten Schleifen (eine Schleife innerhalb einer anderen) bricht break standardmäßig nur die innerste Schleife ab, nicht die äußere:
für i von 0 bis 3:
für j von 0 bis 3:
wenn (bedingung):
break // beendet nur die innere j-Schleife
// äußere i-Schleife läuft normal weiterManche Sprachen bieten dafür “gelabelte” Break-Anweisungen an, um gezielt eine äußere Schleife zu verlassen (break aussen; mit einem vorher gesetzten Label aussen:). Wo das nicht existiert, behilft man sich meist mit einer Hilfsvariable (einem “Flag”), die nach dem inneren break auch von der äußeren Schleife geprüft wird, oder man lagert die verschachtelte Logik in eine eigene Funktion aus und nutzt dort ein einfaches return — oft ohnehin die lesbarere Lösung.
Übermäßiger Gebrauch von break/continue gilt in manchen Stilrichtungen als Zeichen für zu komplexen Kontrollfluss — eine Alternative ist oft, die Abbruchbedingung direkt in die Schleifenbedingung selbst zu integrieren, wo das ohne Verschachtelung möglich ist.
Siehe auch: Schleifen, Switch-Statement