In het onderstaande schema wordt een complexere vorm van selectie getoond. Er zijn nu drie mogelijk paden die het programma kan bewandelen.
Van zodra een conditie of booleaanse expressie evalueert naar True
, worden de bijhorende statements uitgevoerd.
Hieronder vind je de vertaling van dit schema naar pseudocode.
if booleaanse expressie:
python statement
python statement
elif booleaanse expressie:
python statement
python statement
else:
python statement
python statement
python statement
if
naar True
evalueert, worden de statements onmiddellijk
deronder uitgevoerd. Daarna wordt het statement helemaal onderaan het codefragment uitgevoerd.if
naar False
, dan wordt de booleaanse expressie na het
sleutelwoord elif
geëvalueerd. Indien deze expressie naar True
evalueert, worden de statements onmiddellijk
eronder uitgevoerd. Daarna wordt het statement helemaal onderaan het codefragment uitgevoerd.elif
naar False
evalueert, worden de statements onder else:
uitgevoerd.
Het programma gaat daarna verder onder de selectie-structuur.Meervoudige selectie
Bij meervoudige selectie worden statements uitgevoerd afhankelijk van welke van de vele mogelijke voorwaarden waar is. Enkel de code onder de eerste voorwaarde die naar
True
evalueert, wordt dan uitgevoerd. Het is een uitbreiding van de tweevoudige selectie en maakt het mogelijk om complexere beslissingen te nemen in een programma.
Dit betekent dat in een meervoudige selectie meerdere keren het sleutelwoord elif
kan voorkomen. Een else
-blok is
dan weer niet verplicht.
In de herfstvakantie betalen groepen vrienden van hoogstens 12 jaar of minstens 65 jaar € 5,00. Voor andere leeftijdscategorieën geldt een verminderde prijs van € 6,25 indien ze met meer dan 10 vrienden zijn. In alle andere gevallen betaal je € 7,50.
leeftijd = int(input("Geef je leeftijd: "))
aantal = int(input("Hoe groot is vriendengroep? "))
if leeftijd <= 12 or leeftijd >= 65:
ticketprijs = 5.00
elif aantal > 10:
ticketprijs = 6.25
else:
ticketprijs = 7.50
totale_prijs = ticketprijs * aantal
print(f"De toegangsprijs voor de groep van {aantal} vrienden bedraagt € {totale_prijs}.")
Welk statement wordt uitgevoerd wanneer een 14 vrienden van 68 jaar oud tickets willen kopen? Je overloopt alle
(samengestelde) booleaanse expressies. De statements onder de eerste expressie die naar True
evalueert, worden
uitgevoerd. Omdat de leeftijd van de vrienden minstens 65 jaar is, krijg je een ticketprijs van € 5,00.
Ook de booleaanse expressie aantal > 10
na het sleutelwoord elif
evalueert naar True
maar wordt in dit geval niet
uitgevoerd. Erboven werd al een booleaanse expressie gevonden die naar True
evalueert. Er wordt dus steeds slechts
één code-blok uitgevoerd!
Ten slotte nog opmerken dat je het else
-blok kan vermijden. Weet je nog hoe?