De herhaling lijkt sterk op voorwaardelijke code. Ook hier is de keuze van een geschikte voorwaarde erg belangrijk. In de vorige voorbeelden was de voorwaarde eenvoudig: nagaan of een getal kleiner is dan een grenswaarde, bijvoorbeeld n < 25
.
🧠Denkoefening - Altijd waar
Je kan je voorstellen dat een voorwaarde ook altijd voldaan kan zijn. Wat dan? Of andersom, wat als een voorwaarde nooit voldaan is?
👀 Voorbeeld - Oneindige som
Kijk eens naar het volgende voorbeeld:
n = 1 som = 0 while n > 0: print("De som is", som) som += 1
Deze voorwaarde zal altijd voldaan zijn en dus zijn we een oneindige som aan het berekenen.
Als je dit programma uitvoert, zal het nooit stoppen. Je computer kan hierdoor vastlopen.
Dit is bijna altijd problematisch! Het lijkt erop dat je computer vasthangt en niets meer doet, maar eigenlijk is de computer druk bezig met het berekenen van de som. Die som is oneindig dus zal de computer oneindig lang moeten rekenen. Je zal merken dat je computer warm wordt en begint te blazen. Vermijd dus oneindige lussen!
🧠Denkoefening - Stop op tijd
Hoe kan je de code van het vorige voorbeeld aanpassen om de oneindige lus te vermijden?
Soms wordt er opzettelijk een oneindige lus gecreëerd. Bijvoorbeeld tijdens het gamen komt het vaak voor dat een bepaalde actie meerdere keren herhaald wordt, totdat de gebruiker op een toets drukt. Als de gebruiker nooit op die toets drukt, zal het programma blijven lopen. Vandaar dat gaming computers goede ondersteuning moeten bieden voor intensieve programmeertaken, zoals oneindige lussen.