0%

Werk herhalen met lussen · oefening

Stop een lus met break

Een while True-lus kan niet stoppen doordat haar voorwaarde verandert. In de vorige les lieten we er bewust een draaien, wachtend op een uitgang vanuit het blok.

Die uitgang is break. Zodra Python daar komt, eindigt de huidige lus meteen en gaat de uitvoering verder op de eerste regel onder de lus.

Stop zodra het antwoord is gevonden

Zoeken is een logisch eerste gebruik. Zodra je vindt wat je nodig hebt, hoef je niet verder te zoeken:

Try it

De lus controleert drie namen, geen vier. Als name gelijk is aan "Alan", slaat break alle resterende items over. De laatste print() wordt nog wel uitgevoerd, omdat die onder de lus staat, niet erin.

Zonder break zou deze kleine zoekactie alleen één overbodige controle doen. Bij een lange lijst of als elke controle echt werk kost, is stoppen zodra je het antwoord hebt belangrijk.

Geef while True een zichtbare uitgang

De onvoltooide vorm uit de vorige les kan nu een menu worden dat openblijft totdat de gebruiker kiest om te stoppen:

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")

Lees het belangrijke pad op volgorde:

  1. while True begint een nieuwe ronde.

  2. Het programma vraagt om een opdracht.

  3. quit leidt naar break.

  4. Python verlaat de lus en drukt Goodbye af.

De lus heeft bewust geen vooraf bepaald einde, maar de uitgang is niet verborgen. Je kunt precies aanwijzen welke keuze tot break leidt.

Zet het resultaat vóór break

break vertrekt meteen, dus sla alles wat je nog nodig hebt ervoor op:

Try it

Als de toewijzing onder break stond, zou Python die nooit bereiken. Dat is een nuttige vraag bij het debuggen: ‘Heb ik het antwoord opgeslagen voordat ik vertrok?’

Wat drukt deze code af?

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

print("end")

Een lus zoekt in een lijst naar de eerste onbetaalde bestelling. Wat moet ze direct na het opslaan van die bestelling doen?

Gebruik nu break in één gerichte zoekactie. In de volgende les leer je het andere idee: één ronde overslaan zonder de hele lus te beëindigen.

Opdracht

Een sensor heeft een lijst met metingen vastgelegd. Zoek de eerste meting van 30 of hoger.

Schrijf één for-lus over readings die:

  • bij elke onderzochte meting 1 bij checked optelt;

  • als een meting 30 of hoger is, die opslaat in first_high en met break de lus stopt.

Behoud de twee overzichtsregels, die één keer na de lus worden uitgevoerd.

Verwachte uitvoer:

Readings checked: 3
First high reading: 30

Een meting van precies 30 telt als 30 of hoger. De lus moet dus daar stoppen en nooit naar 45 of 9 kijken. Sla de meting vóór break op, want Python verlaat de lus meteen.