6c Een ronde overslaan met continue
Soms wil je in een loop bepaalde rondes overslaan. Kijk wat dit doet:
for i in range(6):
if i == 3:
continue
print(i)
Uitvoer:
0
1
2
4
5
De 3 ontbreekt. continue zegt: stop met déze ronde en ga meteen
door met de volgende. Alles wat in de loop ná continue staat (hier de
print) wordt die ronde overgeslagen — de loop zelf draait gewoon door.
Waarom is dit handig?
Zonder continue moet je de rest van de loop in een else stoppen:
for i in range(6):
if i == 3:
print("overslaan")
else:
print(i)
Bij één regel maakt dat weinig uit. Maar hoe meer code er in de loop staat, hoe fijner het is om bovenaan te zeggen "deze ronde niet" en daarna gewoon verder te schrijven zonder extra inspringen.
Let op: verwar continue niet met het verwante break, dat de
hele loop stopt in plaats van één ronde over te slaan. Dat is de
volgende les.
Opdracht 6c.1: Sla de vijf over
Print de getallen 0 t/m 9, behalve de 5.
# Schrijf hier je code
Klik hier voor een tip.
Check bovenin de loop met if i == 5: en gebruik dan continue.
Klik hier voor de oplossing.
for i in range(10):
if i == 5:
continue
print(i)
for i in range(10):
if i == 5:
continue
print(i)Opdracht 6c.2: Twee overslaan
Print de getallen 1 t/m 10, maar sla de 3 én de 7 over.
# Schrijf hier je code
Klik hier voor een tip.
Twee waardes in één conditie check je met or (uit les 5c):
if i == 3 or i == 7:.
Klik hier voor de oplossing.
for i in range(1, 11):
if i == 3 or i == 7:
continue
print(i)
for i in range(1, 11):
if i == 3 or i == 7:
continue
print(i)Opdracht 6c.3: Tellen wat overblijft (uitdaging)
Loop door de getallen 0 t/m 20. Sla alles over dat kleiner is dan 5 of groter dan 15. Print de getallen die overblijven, en print aan het eind hoeveel het er waren.
Verwachte uitvoer (laatste regel):
Aantal geprint: 11
# Schrijf hier je code
Klik hier voor een tip.
Maak vóór de loop een teller die op 0 begint. Na de continue-check
print je het getal en doe je teller = teller + 1. De eindprint staat
buiten de loop.
Klik hier voor de oplossing.
teller = 0
for i in range(21):
if i < 5 or i > 15:
continue
print(i)
teller = teller + 1
print(f"Aantal geprint: {teller}")
De continue bewaakt de poort: alleen getallen van 5 t/m 15 komen bij
de print en de teller.
teller = 0
for i in range(21):
if i < 5 or i > 15:
continue
print(i)
teller = teller + 1
print(f"Aantal geprint: {teller}")