Welkom bij het hoofdstuk Herhalingen/lussen.

Soms moet je bepaalde stukken code meerdere keren gebruiken achter elkaar. Je wilt bijvoorbeeld van 20 mensen hun BMI berekenen.
Om te vermijden dat je je programma 20x moet kopiƫren kan je je code ook 20x laten uitvoeren.
Een tweede reden is dat je niet altijd op voorhand weet hoeveel keer herhaald moet worden... je wilt bijvoorbeeld van elke leerling in een klas de BMI berekenen, maar niet elke klas heeft evenveel leerlingen. In dit geval moet de gebruiker eerst zeggen hoe vaak er herhaald moet worden.

Twee soorten lussen

Er zijn twee soorten van herhalingen:
We beginnen met de FOR-lus:

for x in range (6):
    print (x)

Dit programma heeft dit als uitkomst:

Je ziet dat het programma optelt en elke keer het resultaat uitschrijft. Wat staat er in de code?
for x in range (6): -> de variabele x is de teller. Deze begint op 0 (want die heeft nog geen waarde gekregen en is dus leeg) en loopt op ("in range").
range(6) geeft aan hoevaak deze herhaling zal gebeuren. Namelijk TOT de teller x op 6 staat (let op: niet TOT EN MET).

Kort samengevat:
  1. In het begin staat de teller x op 0. Dit is geen 6, dus voert het programma zijn bijhorende opdracht uit. Deze opdracht staat op de volgende regel MET inspringing (let ook weer op het : ). Hij schrijft de waarde van de variabele x op het scherm (die is 0)
  2. Hierna wordt de teller x automatisch met 1 verhoogd. Aangezien de teller dan op 1 staat (en dus nog steeds geen 6), voert hij opnieuw de opdracht uit op de volgende regel. Nu is x = 1.
  3. De teller wordt opnieuw verhoogd (nu staat die op 2) enz...
  4. ...
  5. Nadat 5 uitgeschreven is, springt de teller op 6. Aangezien de teller dan TOT 6 gegaan is, stopt het programma.

Merk dus op dat je wel 6x herhaald hebt maar er is begonnen op 0.
onderstaand mopje zou je dan nu moeten begrijpen...



De range aanpassen:

Om te vermijden dat je teller op 0 start, kan je de range-functie uitbreiden:
for x in range (1,6):

Let op het deel tussen haakjes: (1,6). De 1 geeft de startwaarde van de teller (hier x) aan, de 6 weer het einde. Dit programma geeft deze uitkomst:

1
2
3
4
5

Met een derde cijfer kan je ook de verhoging per herhaling instellen:
for x in range (1,6,3):

In dit voorbeeld staat de teller in het begin op 1, zal de herhaling TOT 6 lopen en per herhaling verhoogt de teller met 3 (ipv met 1). Dit geeft volgend resultaat:

1
4

Hoe kom je aan dit resultaat?
De teller start op 1 en print deze dus ook uit (want is lager dan 6). Daarna verhoogt de teller met 3, waardoor deze op 4 komt te staan. Deze wordt opnieuw uitgeschreven want nog steeds geen 6. Daarna verhoogt de teller opnieuw met 3 waardoor deze op 7 komt te staan. Aangezien dit meer is dan 6, stopt het programma.

De opdracht:

Maak een programma dat oplopende cijfers onder elkaar zet zoals in het eerste voorbeeld:



Maar het aantal herhalingen ligt niet vast. De gebruiker geeft dus aan tot hoeveel herhaald moet worden.

Invoer

Een regel met een geheel getal. Dit is het aantal herhalingen

Uitvoer

verschillende regels onder elkaar met oplopende cijfers, beginnende van 0

Voorbeeld 1

Invoer:

3

Uitvoer:

0
1
2

Voorbeeld 2

Invoer:

6

Uitvoer:

0
1
2
3
4
5