Nu je de if-then-else onder de knie hebt, gaan we de if-then-else mixen met een for-loop: de while-loop. Het gaat zo:
while True: print("No stopping me") print("Never finishing...") No stopping me No stopping me No stopping me No stopping me No stopping me No stopping me <....> No stopping me
Run je deze code per ongeluk dan moet je m stoppen met Menu -> Shell -> Restart Shell of CTRL-F6.
De conditie op de plaats van True werkt op dezelfde manier als bij if-then-else. Je moet alleen wel een conditie gebruiken die op een gegeven moment onwaar wordt, anders heb je een infinite loop. Dat zuigt.
Klassiek is de loop over een variabele:
x = 0 while x < 10: print("x is " + str(x)) x = x + 1 print("Klaro") X is 0 X is 1 X is 2 X is 3 X is 4 X is 5 X is 6 X is 7 X is 8 X is 9 Klaro
We lopen er even regel voor regel doorheen:
- x = 0. Wat is je begin-situatie? Als je een variabele test maar hij nog geen waarde heeft, tript je programma.
- while x < 10: . Dit is de test. x begint op 0 ,dus true. Dan gaat ie de loop in.
- print(“x is ” + str(x)). Even printen. Van x printen we de string-waarde, want optellen gaat nu niet.
- x = x +1. Ophogen. Als je dit vergeet ben je de bok. Shortcut: x += 1
Oefeningen met While loops.
Opdracht 1. Print de maanden
Haal de lijst met maanden nog even op van de opdrachten met if-then-else.
- maak een variabele nummer = 0
- maak een while loop, die maximaal alle 12 (…) maanden afloopt.
- en print de naam van elke maand. Check december!
Opdracht 2. Leuke maand?
Breidt je code een stukje uit met:
- print niet alleen de naam, maar vraag of deze maand leuk is (j/n).
- als de maand niet leuk is, print dan een extra tekst.
Opdracht 3. De where – clausule uitbreiden
- maak voor de loop begint de variabele leuk en geef de waarde true.
- als de maand niet leuk is, zet leuk op false
- test met het maand-nummer en leuk:
while leuk and nummer < 12:
Logische Operatoren : and or en not
Bij opdracht 3 zag je dat je logica kunt combineren met het and-keyword. Ze werken zo:
- a and b : True wanneer a en b true zijn.
- a or b: True wanneer a True is, of B true is, of allebei.
- not a: true wanneer a false is en false wanneer a true is.
De enige verrassing zit m bij de or. Vraag maar eens of je suiker of melk in de koffie wilt !
Opdracht 4. Koffie?
- vraag aan de gebruiker of deze koffie wil
- zo ja, vraag of er ook suiker in moet, en als tweede vraag
- of er ook melk in moet
- stop de resultaten elk in een eigen variabele
- als het met melk En suiker is, dan print je “met alles”
- zet de hele code binnen een while-loop en laat deze loop stoppen als je 3x met alles hebt gehad.