break
und continue
– Schleifen im Ablauf abbrechen
Sowohl die for
- wie auch die while
-Schleife gibt es die Möglichkeit diese frühzeitig abzubrechen, auch wenn das Schleifenende eigentlich noch nicht erreicht wurde. Dies läuft über den Python-Befehl break
Wir haben eine for
-Schleife, die die Zahlen von 0 bis 9 durchläuft. Diese soll aber bei Erreichen von der Zahl 7 abbrechen und nach der Schleife weitermachen.
for durchgang in range(10):
if durchgang == 7:
print("Schleifenabbruch wird erzwungen")
break
print(durchgang)
print("Nach der Schleife")
Als Ergebnis erhalten wird
0
1
2
3
4
5
6
Schleifenabbruch wird erzwungen
Nach der Schleife
Schleifendurchgang im Ablauf überspringen
Nicht ganz so radikal wie break
funktioniert die Anweisung continue
in Python. Es wird nur der Schleifendurchgang abgebrochen, aber wieder den nächsten Schleifendurchgang mit neuem Wert durchlaufen.
Dies wird in einem Beispiel klarer. Wir wollen beispielsweise nur gerade Ergebnisse ausgeben lassen. Dazu wird die mathematische Funktion des Modulo genutzt.
Was macht der Modulo? Diese gibt uns als Rückantwort entweder 0 für gerade oder 1 für ungerade zurück. Der Modulo wird über die Konstruktion "%2
" aktiviert. Schauen wir Beispiele dazu an:
wert = 3
print(wert%2)
Hier erhalten wir als Ausgabe dann 1. Die Zahl 3 ist ungerade und somit kommt als Ergebnis dann 1.
wert = 4
print(wert%2)
Hier erhalten wir als Rückgabe die 0, da unsere Zahl 4 gerade ist.
wert = 13
print(wert%2)
Die Zahl 13 ist ungerade und somit liefert der Modulo als Rückgabe 1.
Setzten wir dieses Wissen nun in unsere for
-Schleife ein, damit nur noch gerade Zahlen ausgegeben werden und die Schleife in diesem Durchgang nicht weiter durchlaufen wird.
for durchgang in range(10):
if durchgang%2 == 1:
continue
print(durchgang)
print("Nach der Schleife")
Als Ausgabe erhalten wir alle geraden Zahlen (ohne 10, da ja der Durchgang nur bis 9 geht)
0
2
4
6
8
Nach der Schleife
Dies waren beide Möglichkeiten, eine Schleife komplett abzubrechen (break
) oder den Schleifendurchlauf zu überspringen (continue
).
Das klappt sowohl bei der for
-Schleife wie auch bei der while
-Schleife.