# D Herhaling

De algoritmen die je tot nu toe geschreven hebt, zijn nog niet erg efficiënt. Voor het tekenen van een vierkant (vier lijnen en hoeken) had je acht tekenopdrachten nodig. In dit onderdeel zul je zien hoe dat handiger kan.

De eerste stap in het efficiënt opschrijven van algoritmen is het gebruik van de herhalingsstructuur. Wanneer je kijkt naar het algoritme voor het tekenen van een vierkant, dan zie je dat er vier keer hetzelfde staat. Je gaat vier keer vooruit en naar rechts. Of, om precies te zijn: je gaat vier keer (vooruit en naar rechts). In Python kan je op onderstaande manier een herhaling maken

    import turtle
    t = turtle.Turtle()

    zijde=50
    for i in range(4):
      t.forward(zijde)
      t.left(90)

Hoe werkt dit:
Achter for zie je een `i`, dit is een variabele deze mag je noemen hoe je zelf wilt. Meestal wordt daar een letter `i` gebruikt als afkorting van integer (geheel getal). Je mag dit noemen zoals jij zelf wilt.

range(4) is een lijst met getallen van 0 tot 4. Als deze lijst is doorlopen stopt de herhaling.

Onderstaande code zou precies hetzelfde doen.

    import turtle
    t = turtle.Turtle()

    zijde=50
    for getal in [0,1,2,3]:
      t.forward(zijde)
      t.left(90)

De variabele heet hier `getal` en de range(4) is vervangen door de getallen [0,1,2,3]

Hetgeen je meerdere keren wilt uitvoeren staat onder de `for` en is een stukje ingesprongen.

Wanneer je het inspringen beeindigd, hoort het niet meer bij de herhaling.

Dus bij bovenstaande code zullen alleen regel 6 en 7 herhaald worden. De code werkt maar is onoverzichtelijk. Beter kan je vertellen wat er gebeurt zoals hieronder.

## Variabele printen

Je kan goed zien wat er met de variabele gebeurt door deze op het scherm af te drukken.

    import turtle
    t = turtle.Turtle()

    zijde=50
    for i in range(4):
      t.forward(zijde)
      t.left(90)
      t.write(i)  # schrijft in je tekening
      print(i)    # schrijft in je console

Een veel gemaakte fout is dat de `:` achter de `for` regel wordt vergeten. Dus let daarop!