7. Iteraties
Computers raken niet verveeld. Als een computer een taak honderdduizenden malen moet herhalen, protesteert hij niet. Mensen daarentegen houden niet van teveel herhaling. Daarom moeten herhalende taken aan een computer worden overgelaten. Alle programmeertalen ondersteunen herhalingen. De klasse programmeerconstructies die herhalingen mogelijk maken heten "iteraties." Een veelgebruikte term is "loops" (Engels, spreek uit: "loeps" – dit woord kun je netjes vertalen als "lussen," maar dat zeggen programmeurs nooit).
Dit hoofdstuk legt uit wat je moet weten over loops in Python. Als programmeren helemaal nieuw voor je is, zul je wellicht het gevoel krijgen dat loops een lastig onderwerp zijn. Als dat zo is, neem dan de tijd voor dit hoofdstuk, en werk eraan totdat je zeker weet dat je alles snapt. Loops zijn zo'n basaal programmeerconcept dat je ze goed moet begrijpen. Elk hoofdstuk dat hierna komt maakt gebruik van loops.
Hoofdstukken
📄️ 7.1 While loop
Stel dat je de gebruiker moet vragen om vijf getallen, ze moet optellen, en dan het totaal moet laten zien. Met het materiaal dat tot nu toe behandeld is, zou je dat als volgt coderen:
📄️ 7.2 For loop
Een alternatieve manier om loops te implementeren is via de for loop. for loops zijn gemakkelijker en veiliger te gebruiken dan while loops, maar kunnen niet voor alle iteratie problemen gebruikt worden. while loops bieden een generieke oplossing voor loops. Met andere woorden, alles wat een for loop kan doen, kan een while loop ook doen, maar niet andersom.
📄️ 7.3 Loop controle
Er zijn drie statements die je controle geven over de wijze waarop een loop uitgevoerd wordt. Dit zijn else, break, en continue. Ze werken met zowel while als for loops.
📄️ 7.4 Geneste loops
Je kunt een loop in een andere loop stoppen.
📄️ 7.5 De loop-en-een-half
Stel dat je de gebruik om paren getallen vraagt in een loop. Voor ieder paar getallen dat de gebruiker ingeeft wil je laten zien wat hun vermenigvuldiging is. Je wilt de gebruiker het programma laten stoppen als hij een nul ingeeft, ongeacht voor welk getal. Vanwege een onbekende reden mogen de twee getallen geen delers van elkaar zijn; als ze dat wel zijn is dat een fout en wordt het programma onmiddellijk gestopt met een foutboodschap. Tenslotte is het een eis dat de getallen in het bereik 0 tot en met 1000 liggen; als de gebruiker een getal ingeeft dat niet in dat bereik zit wordt dat echter niet beschouwd als een fout; je wilt gewoon dat de gebruiker dan een nieuw getal ingeeft. Hoe programmeer je zoiets? Hier is een eerste poging:
📄️ 7.6 Slim gebruik van loops
Ter afronding van dit hoofdstuk, bediscussieer ik een aantal strategieën voor het ontwerpen van loops, en het ontwerpen van algoritmes in het algemeen.
📄️ 7.7 Over het ontwerpen van algoritmes
Als je tot op dit punt van het boek gestaag hebt doorgewerkt, kom je vanaf nu opgaves en problemen tegen waarbij je niet zeker bent over hoe je ze op moet lossen. Ik gaf een voorbeeld van een dergelijk probleem hierboven (het vinden van de grootste, de kleinste, en het aantal deelbaar door 3 van tien getallen), en de oplossing die ik bedacht. Een dergelijke oplossing wordt een algoritme genoemd. Maar hoe ontwerp je zo een algoritme?
📄️ Opgaven
Wat je geleerd hebt