Erklärung zur Lektion
Nach dieser Lektion kannst du:
while verwenden, wenn die Wiederholung von einem sich ändernden Zustand abhängt.break sofort abbrechen, wenn das Ziel gefunden wurde.continue den Rest eines Durchlaufs überspringen.Verwende while, wenn das Programm so lange wiederholen soll, wie eine Bedingung wahr bleibt:
while attempts < max_attempts:
...Anders als eine for-Schleife aktualisiert eine while-Schleife ihren steuernden Zustand nicht automatisch. Dein Code muss den Wert ändern, den die Bedingung verwendet, sonst kann die Schleife endlos laufen.
break verlässt die gesamte Schleife sofort. Verwende es, wenn ein Weitermachen unnötig wäre, etwa nachdem ein funktionierender Server gefunden wurde.
continue überspringt die restlichen Anweisungen im aktuellen Durchlauf und kehrt zur Schleifenbedingung zurück. Stelle vor dem Weitermachen sicher, dass jede nötige Aktualisierung von Index oder Zähler bereits stattgefunden hat; andernfalls kann die Schleife dasselbe Element endlos wiederholen.
Verwende for für einen bekannten numerischen Bereich oder die direkte Iteration über Werte. Verwende while, wenn der Endpunkt von einem Zustand abhängt, der sich während der Ausführung ändert.
Die Aktualisierung des Zählers macht die Bedingung irgendwann falsch.
attempt = 1
while attempt <= 3:
print(f"Attempt {attempt}")
attempt += 1Ausgabe:
Attempt 1
Attempt 2
Attempt 3Ohne attempt += 1 würde diese Schleife nicht enden.
break beendet die Schleife, sobald der fehlerfreie Status gefunden wurde.
statuses = ["error", "error", "ready"]
index = 0
while index < len(statuses):
status = statuses[index]
index += 1
if status == "ready":
print(f"Ready on check {index}")
breakAusgabe:
Ready on check 3Nach dem Erfolg ist kein weiterer Durchlauf nötig.
continue überspringt die Ausgabe für den ungültigen Wert, lässt die Schleife aber weiterlaufen.
readings = [18, -1, 22]
index = 0
while index < len(readings):
reading = readings[index]
index += 1
if reading == -1:
continue
print(reading)Ausgabe:
18
22Der Index wird vor continue aktualisiert, sodass die Schleife voranschreitet.
continue und break kombinierenEine Bedingung überspringt unbrauchbare Eingaben, eine andere beendet die Verarbeitung.
commands = ["", "status", "stop", "deploy"]
index = 0
while index < len(commands):
command = commands[index]
index += 1
if not command:
continue
if command == "stop":
break
print(command)Ausgabe:
statusDer leere Befehl wird übersprungen, und die Verarbeitung endet bei stop.
| Bedarf | Werkzeug |
|---|---|
| Wiederholen, solange der Zustand gültig bleibt | while |
| Die Schleife vollständig verlassen | break |
| Nur diesen Durchlauf überspringen | continue |
| Eine Endlosschleife vermeiden | Den steuernden Zustand aktualisieren |
break nicht, wenn nur ein einzelnes Element übersprungen werden soll.continue nicht vor eine erforderliche Aktualisierung des Index.while nicht für einen einfachen festen Bereich, bei dem for klarer ist.