## Theorie

Wanneer je een programma schrijft dan zal ik het vaak voorkomen dat je een (of meerdere) regel(-s) code vaker wilt herhalen.
Stel bijvoorbeeld dat je de getallen 0 t/m 99 onder elkaar wilt tonen in de terminal dan zou je daarvoor de volgende code kunnen schrijven:

      System.out.println(0);
      System.out.println(1);
      System.out.println(2);
      ...
      ...
      System.out.println(99);

Bovenstaande code is legitieme code maar deze is ook zeer inefficiënt. Je schrijft tenslotte 100 keer nagenoeg dezelfde regel code op!
Om het herhalen van code efficiënter kunnen schrijven, is de for-loop1 bedacht. Dit is een constructie die in elke programmeertaal voorkomt. Met behulp van deze constructie kunnen we de bovenstaande code veel compacter schrijven:

    1    for (int x = 0 ; x < 100 ; x = x + 1) {
    2       System.out.println(x);
    3    }

Als je de eerste regel code goed leest dan zie je dat deze uit drie delen is opgebouwd:

1. int x = 0
2. x < 100
3. x = x + 1

Deze drie onderdelen hebben de volgende betekenissen:

int x = 0
In het eerste onderdeel wordt er een nieuwe variabele aangemaakt met de naam x en van het datatype int. Tegelijkertijd wordt er aan deze variabele 0 toegekend. Dit eerste onderdeel van de for-loop wordt de initialisatie genoemd.
x < 100
In het tweede gedeelte wordt bepaald hoe vaak de loop moet worden doorlopen. In de bovenstaande code wordt de loop doorlopen tot en met de waarde 99. Is de waarde 100 bereikt dan is de stelling x < 100 niet meer waar en stopt de loop. Dit tweede onderdeel van de for-loop wordt de voorwaarde genoemd.

x = x + 1
In het derde gedeelte wordt telkens, nadat de loop één keer is doorlopen, er 1 opgetelt bij de variabele x. Dit gebeurt net zo lang totdat x de waarde 100 heeft bereikt. Dit derde onderdeel van de for-loop wordt de stapopdracht genoemd.

Hieronder staan een aantal voorbeelden van berekeningen die worden gemaakt bij het doorlopen van de stapopdracht.

loop | vergelijking | stapopdracht
1 | 0 < 100 | 1 = 0 + 1
2 | 1 < 100 | 2 = 1 + 1
3 | 2 < 100 | 3 = 2 + 1
4 | 3 < 100 | 4 = 3 + 1
5 | 4 < 100 | 5 = 4 + 1
... | ... | ...
99 | 98 < 100 | 99 = 98 + 1
100 | 99 < 100 | 100 = 99 + 1
101 | 100 < 100 | wordt niet meer uitgevoerd

De code die moet worden herhaald
De code die telkens moet worden herhaald, moet tussen de beginaccolade ( { ) en de eindaccolade ( } ) komen te staan. Tussen deze twee accolades kan je één regel code plaatsen of meerderen (honderden als dat nodig is).

De flow van een for-loop

Samenvatting
In de eerste regel van de for-loop (de 'header') wordt bepaald bij welke waarde de loop moet starten, tot welke waarde de loop moet worden doorlopen en wat er moet gebeuren als de loop één keer doorlopen is. De code die steeds herhaald moet worden moet tussen de beginaccolade en eindaccolade staan.

Voetnotes

1. Loop is het Engelse woord voor rondgang, cirkel (De code van de for-loop wordt telkens opnieuw doorlopen.).