0%

Arbeit mit Schleifen wiederholen · Übung

Beende eine Schleife mit break

Eine while True-Schleife kann nicht durch eine Änderung ihrer Bedingung stoppen. Die vorherige Lektion ließ absichtlich eine laufen, die auf einen Ausstieg aus dem Rumpf wartete.

Dieser Ausstieg ist break. Sobald Python es erreicht, endet die aktuelle Schleife sofort. Die Ausführung geht in der ersten Zeile unterhalb der Schleife weiter.

Stoppe, wenn die Antwort gefunden ist

Suchen ist ein naheliegender erster Einsatz. Wenn du gefunden hast, was du brauchst, gibt es keinen Grund weiterzusuchen:

Try it

Die Schleife prüft drei Namen, nicht vier. Wenn name gleich "Alan" ist, überspringt break alle verbleibenden Elemente. Das abschließende print() läuft trotzdem, weil es unterhalb der Schleife steht, nicht darin.

Ohne break würde diese kleine Suche nur eine unnötige Prüfung ausführen. Bei einer langen Liste oder wenn jede Prüfung echte Arbeit verursacht, ist es wichtig, bei der gefundenen Antwort zu stoppen.

Gib while True einen sichtbaren Ausstieg

Jetzt kann aus dem unfertigen Muster der vorherigen Lektion ein Menü werden, das offen bleibt, bis die Person es beenden möchte:

while True:
    command = input("Type help or quit: ").strip().lower()

    if command == "help":
        print("Try one small command at a time.")
    elif command == "quit":
        break
    else:
        print("I do not know that command.")

print("Goodbye")

Lies den wichtigen Weg der Reihe nach:

  1. while True beginnt einen weiteren Durchlauf.

  2. Das Programm fragt nach einem Befehl.

  3. quit führt zu break.

  4. Python verlässt die Schleife und gibt Goodbye aus.

Die Schleife ist bewusst offen, aber ihr Ausstieg ist nicht versteckt. Du kannst genau auf die Auswahl zeigen, die zu break führt.

Speichere das Ergebnis vor break

break steigt sofort aus. Speichere deshalb alles, was du noch brauchst, vorher:

Try it

Stünde die Zuweisung unter break, könnte Python sie nie erreichen. Eine hilfreiche Frage bei der Fehlersuche lautet deshalb: „Habe ich die Antwort vor dem Ausstieg gespeichert?“

Was gibt dieser Code aus?

for value in [3, 7, 11, 15]:
    if value > 10:
        break
    print(value)

print("end")

Eine Schleife sucht in einer Liste die erste unbezahlte Bestellung. Was soll sie unmittelbar nach dem Speichern dieser Bestellung tun?

Verwende jetzt break für eine gezielte Suche. Die nächste Lektion ergänzt die andere Idee, einen Durchlauf zu überspringen, ohne die gesamte Schleife zu beenden.

Aufgabe

Ein Sensor hat eine Liste von Messwerten aufgezeichnet. Suche den ersten Messwert von 30 oder mehr.

Schreibe eine for-Schleife über readings, die:

  • für jeden untersuchten Messwert 1 zu checked addiert;

  • einen Messwert ab 30 in first_high speichert und die Schleife mit break beendet.

Behalte die beiden Berichtszeilen bei, die einmal nach der Schleife laufen.

Erwartete Ausgabe:

Readings checked: 3
First high reading: 30

Ein Messwert von genau 30 zählt als 30 oder mehr. Die Schleife soll deshalb dort stoppen und 45 und 9 gar nicht mehr ansehen. Speichere den Messwert vor break, denn Python verlässt die Schleife sofort.