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.