Met voorwaardelijke code kunnen we heel wat programma’s vormen, van eenvoudig tot erg complex.

🧠 Denkoefening - Groter of niet?

Kijk naar het volgende programma. Beredeneer wat de uitvoer zal zijn, zonder het programma uit te voeren.

# Definieer 2 getallen
x = 5
y = 42
# Controleer de voorwaarde
if x > y:
    print('Groter')
else:
    print('Niet groter')

Voer nu de code hierboven uit in de sandbox en kijk na of je voorspelling klopte.

Het programma hierboven test of x groter is dan y. In de praktijk wil je vaak meer dan twee opties hebben, bijvoorbeeld groter dan, gelijk aan of kleiner dan. Je kan dit doen door meerdere voorwaarden achter elkaar te schrijven. Of door verschillende voorwaarden in elkaar te schrijven.

👀 Voorbeeld - Groter, kleiner of gelijk

De volgende code checkt voor twee getalen x en y of x groter is dan y, gelijk is aan y of kleiner is dan y.

# Definieer 2 getallen
x = 5
y = 42
# Controleer de voorwaarde
if x > y:
    print('Groter')
else:
    if x == y:
        print('Gelijk')
    else:
        print('Kleiner')

Experimenteer in de sandbox met de code hierboven door de waardes voor x en y aan te passen.

🧠 Denkoefening - Stroomdiagram

Stel het stroomdiagram op van het programma dat hierboven staat.

We zeggen dat de tweede if genest is: ze bevindt zich geïndenteerd onder een andere voorwaarde. Verschillende voorwaarden in elkaar plakken is niet zo handig, omdat je telkens verder naar rechts moet indenteren. Python heeft hier een verkorte versie voor: elif.

nest

👀 Voorbeeld - Groter, kleiner of gelijk

Hieronder zie je een alternatieve manier om het bovenstaande programma te schrijven. Het gedrag van de code is exact hetzelfde.

# Definieer 2 getallen
x = 5
y = 42
# Controleer de voorwaarde
if x > y:
    print('Groter')
elif x == y:
    print('Gelijk')
else:
    print('Kleiner')

💡 Hint

Let goed op de indentatie in deze code.

De instructie elif voegt niets nieuws toe: het is een afgekorte versie van een else gevolgd door een nieuwe if. De stroomdiagrammen van de twee bovenstaande programma’s zijn dus identiek. Toch is het een goede gewoonte elif te gebruiken: het maakt de code meer leesbaar en overzichtelijk.

👀 Voorbeeld - Een el kan het verschil maken

Vergelijk de onderstaande 2 stukken code en voer ze uit in de sandbox.

# Definieer x
x = 10
if x > 5:
    print('x is groter dan 5')
# Hier gebruiken we een elif
elif x > 8:
    print('x is groter dan 8')
# Definieer x
x = 10
if x > 5:
    print('x is groter dan 5')
# Hier gebruiken we nu if in plaats van elif
if x > 8:
    print('x is groter dan 8')

In het eerste stuk code, wordt gebruik gemaakt van de elif. De voorwaarde x > 8 wordt dus enkel bekeken als de voorwaarde ervoor (x > 5) niet waar is. Hierdoor wordt de tweede print dus niet uitgevoerd.

In het tweede stuk code staan er twee if-statements na elkaar. De voorwaarde van het tweede if-statement wordt sowieso gecontroleerd, ongeacht het resultaat van de voorwaarde van het eerste if-statement.

🧠 Denkoefening - Andere waarden

Wat zou de uitvoer zijn van de twee stukken code hierboven als je de waarde van x verandert naar:

  • 4
  • 7

Verklaar waarom dit zo is.

💻 Programmeeroefening - Pretpark attracties

Schrijf in de editor hieronder een programma dat bepaalt op welke attracties pretparkbezoekers mogen op basis van hun leeftijd.

vraag de gebruiker naar zijn leeftijd met de vraag: Wat is jouw leeftijd in jaren?.

Hier zie je welke melding er getoond moet worden voor elke leeftijd:

  • 12 jaar of jonger: “Je krijgt enkel toegang tot de kinderattracties.”
  • tussen 12 en 16 jaar: “Je krijgt enkel toegang tot de gevaarlijke attracties met een volwassen begeleider.”
  • 16 jaar of ouder: “Je krijgt toegang tot alle attracties.”