Ga naar hoofdinhoud

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