# Programmeren in Python/Conditionele statements
## Beslissingen

Een beslissing treedt op wanneer de logica (flow) een aantal verschillende paden kan volgen en de keuze van het pad afhangt van de waarde van een variabele. Hetzelfde gebeurt bij een verkeerslicht, wanneer het groen is mag men doorrijden. Bij rood en oranje moet men stoppen. Dit zijn mogelijke paden die afhangen van de waarde (kleur) van het verkeerslicht. Hetzelfde gebeurt in een Python programma en Python kent natuurlijke statements (in dit geval het if statement) die programmeurs toelaten om dergelijke beslissingen te programmeren.

## If en else statement

Bij wijze van demonstratie een kort programma welke de absolute waarde van een getal teruggeeft:
Python-code: if statement
Dit programma kan bijvoorbeeld tot de volgende uitvoer leiden:
Hoe werkt dit nu ? Om te beginnen wordt de gebruiker om input gevraagd, met een prompt Integer?; vervolgens wordt de invoer gelezen en opgeslagen in de variabele n. Dan wordt er een beslissing genomen op basis van de waarde van n, indien de waarde kleiner is dan nul, dan wordt n vermenigvuldigd met -1 en wordt dit als absolute waarde getoond, indien n reeds positief is, wordt deze waarde rechtstreeks gebruikt.
Iets formeler, Python verifieert of de Booleaanse uitdrukking n < 0 True of False is. Indien het if statement gevolgd is door een geïndenteerd blok statements, dan worden deze statements uitgevoerd indien de uitdrukking True is. Het if statement heeft een optioneel else statement gevolgd door een volgend blok geïndenteerde statements. Dit tweede block wordt uitgevoerd indien het de expressie gekoppeld aan het if statement False blijkt te zijn.
Er zijn een aantal manieren om vergelijkingen uit te drukking in een expressie. De volgende tabel geeft deze weer:
Los hiervan kan elke Booleaanse expressie gebruikt worden in combinatie met een if statement.

## elif

Naast else kan een if statement eveneens gevolgd worden door een elif statement. Dit is de verkorte notatie voor else if. Wanneer het if statement False is, wordt de expressie meegegeven aan het elif statement geëvalueerd. Indien dit geldig is, wordt het blok geïndenteerde statements uitgevoerd. Indien het False is wordt, indien aanwezig het volgende elif statement bekeken of wordt het else blok uitgevoerd, indien aanwezig. Een if statement kan optioneel gevolgd worden door nul of meerdere elif blokken welke gevolgd kunnen worden door één of geen else blok. Hiernaast kan een blok statements natuurlijk ook andere if blokken bevatten, dit zijn dan geneste if's. Bijvoorbeeld:
Python-code: if statement
en de uitvoer:
Merk op dat elif a <= 7 alleen getest wordt indien de if expressie False bleek te zijn.
Het volgende voorbeeld maakt gebruik van geneste if's:
Python-code: if statement
Hier itereren we over alle getallen tussen 1 en 10 (inclusief). De uiterste if maakt het onderscheid tussen even getallen, het getal 1 en oneven getallen. Bij de even getallen vangen we 2 op als enige priemgetal. Bij de oneven getallen kleiner dan tien wordt 9 opgevangen als zijnde geen priemgetal. Merk op dat er heel wat zinnigere methoden zijn om priemgetallen te bepalen en het gaat hier om een louter didactisch voorbeeld om het nesten van lussen te illustreren.

## Switch

Een switch is een controle statement dat in de meeste programmeertalen aanwezig is en dit wordt gebruikt om een groot aantal if-elif combinaties compacter te maken. Python heeft echter geen standaard ondersteuning voor dit type structuur, maar door intelligent gebruik te maken van een array of een woordenboek kunnen we een switch simuleren.
Dit werkt omdat Python een referentie naar de functie opslaat in de array op de index in kwestie, door haakjes toe te voegen wordt eigenlijk een functie aanroep gemaakt. Bemerk dat een menu[x] waarbij x een integer is, eigenlijk equivalent is aan volgende structuur: