Cursus
De while-loop lijkt enigszins op een if-statement: hij voert de code binnenin uit als de voorwaarde True is. In tegenstelling tot het if-statement blijft de while-loop de code echter herhaaldelijk uitvoeren zolang de voorwaarde True is.
De while-loop

De syntaxis van de while-loop lijkt sterk op die van het if-statement, zoals je hierboven ziet. De while-loop is niet heel gangbaar, maar kan in sommige gevallen erg nuttig zijn.
Voorbeeld
Stel dat je numeriek een model berekent op basis van je data. Dit houdt doorgaans in dat je dezelfde stappen herhaaldelijk uitvoert totdat de fout tussen je model en je data onder een bepaalde grens komt. Als je het probleem kunt herformuleren als een handeling herhalen totdat aan een voorwaarde is voldaan, is een while-loop vaak de juiste keuze.
In het onderstaande voorbeeld begin je met een fout gelijk aan 50.0. Vervolgens schrijf je een while-loop; in het voorwaardegedeelte zetten we error > 1, zodat de while-loop opnieuw wordt uitgevoerd zolang de fout groter is dan 1. Binnen de while-loop deel je de fout door vier en werk je de variabele error bij. Als we het de eerste keer uitvoeren, krijgen we 12,5.

Python gaat vervolgens terug naar de voorwaarde van de while-loop met de nieuwe fout van 12,5. De voorwaarde is opnieuw waar en de code wordt uitgevoerd.

Python gaat weer terug naar de voorwaarde van de while-loop en probeert de code opnieuw uit te voeren. Omdat 3,125 groter is dan 1, wordt de berekening uitgevoerd.

Uiteindelijk is de nieuwe voorwaarde van de while-loop kleiner dan 1, dus stopt de code en wordt er niets meer uitgevoerd.

Dit voorbeeld komt goed van pas, want het is tijd om zelf een while-loop te bouwen! We gaan een while-loop coderen die een heel eenvoudig regelsysteem voor een omgekeerde slinger implementeert. Als er een afwijking is ten opzichte van perfect rechtop staan, corrigeert de while-loop deze afwijking stap voor stap.
Let op: als je while-loop te lang blijft draaien, heb je mogelijk een fout gemaakt. Vergeet vooral niet de inhoud van de loop in te springen!
Voorbeeld van een fout met while-loop (blijft oneindig draaien)
Stel dat je het bijwerken van de foutwaarde uitcommentarieert of verwijdert en het script opnieuw uitvoert. De fout wordt dan niet bijgewerkt en de voorwaarde blijft altijd waar. Hierdoor blijft de while-loop voor altijd draaien.

Als je deze fout op je eigen systeem maakt, moet je het Python-programma onderbreken door Control + C in te drukken.
Voorbeeld
In het onderstaande voorbeeld maak je de variabele offset met een beginwaarde van 8. Daarna schrijf je een while-loop die blijft draaien zolang offset niet gelijk is aan 0.
Binnen de while-loop:
- Print je de zin
"correcting...". - Verlaag vervolgens de waarde van
offsetmet 1. Dat kan metoffset = offset - 1. - Print tenslotte binnen je while-loop
offsetzodat je kunt zien hoe de waarde verandert.

Als we het bovenstaande programma uitvoeren, levert het het volgende resultaat op:
correcting...
7
correcting...
6
correcting...
5
correcting...
4
correcting...
3
correcting...
2
correcting...
1
correcting...
0
Wil je meer leren over while-loops? Bekijk dan deze video uit onze cursus Intermediate Python.
Deze content is afkomstig uit DataCamp’s cursus Intermediate Python door Hugo Bowne-Anderson.
Bekijk ook onze tutorial Python-loops en de tutorial Een do-while-loop in Python emuleren om verder te leren en te oefenen met loops in Python, zodat je een expert wordt.
