Drop hier links of afbeeldingen om ze aan de editor toe te voegen.

Bij een while-lus herhaal je zolang een voorwaarde waar blijft, zonder dat je op voorhand hoeft te weten hoe vaak. Maar vaak ken je het aantal herhalingen wel op voorhand: “doe dit 7 keer”, “vraag 20 snelheden”, “toon de getallen 1 tot en met 10”. In zo’n geval is de for-lus handiger: je geeft het aantal herhalingen in één regel compact aan.

Een uitgewerkt voorbeeld

We willen aan de gebruiker 7 gehele getallen vragen, en daarna de som ervan tonen.

We weten op voorhand dat we precies 7 keer een getal moeten inlezen. Dat is dé situatie voor een for-lus:

int getal;
int totaal;

totaal = 0;
for (int teller = 1; teller <= 7; teller++)
{
    Console.Write("Geef geheel getal " + teller + " in ");
    getal = Convert.ToInt32(Console.ReadLine());
    totaal += getal;
}
Console.WriteLine("de som is " + totaal);

De variabele teller houdt bij de hoeveelste herhaling we bezig zijn: ze gaat van 1 tot en met 7. Bij elke herhaling lezen we een getal in en tellen we het bij totaal op. Na de zevende herhaling is de lus klaar en tonen we de som.

De drie delen van een for-lus

Tussen de haakjes van een for-lus staan drie delen, gescheiden door puntkomma’s. Neem als voorbeeld:

for (int i = 0; i < 10; i++)
{
    // de instructies die herhaald worden
}

De accolade op de volgende regel geeft, net als bij een while-lus, aan welke instructies herhaald worden: alles tussen de accolades tot aan de bijbehorende sluitende accolade.

De drie delen tussen de haakjes zijn:

DeelVoorbeeldWat het doet
beginwaardeint i = 0Declareert een variabele i met startwaarde 0. Deze variabele is enkel gekend binnen de lus. Dit deel wordt één keer uitgevoerd, helemaal in het begin.
voorwaardei < 10Bepaalt hoeveel keer de herhaling gebeurt. Zolang de voorwaarde waar is (i kleiner dan 10), worden de instructies tussen de accolades uitgevoerd.
ophogingi++Wordt uitgevoerd na elke herhaling, vóór de voorwaarde opnieuw getest wordt. i++ verhoogt i met 1 (de verkorte vorm van i = i + 1).

De lus hierboven doorloopt dus i = 0, 1, 2, ..., 9: tien herhalingen. Bij i = 10 is de voorwaarde i < 10 niet meer waar en stopt de lus.

Schematisch verloopt een for-lus zo. De beginwaarde wordt één keer uitgevoerd; daarna herhalen de voorwaarde, het lichaam en de ophoging tot de voorwaarde niet meer waar is:

beginwaarde (i = 0) voorwaarde lichaam van de lus ophoging (i++) verder waar niet waar herhaal

Wil je tellen vanaf 1 tot en met 10, dan schrijf je for (int i = 1; i <= 10; i++). Let goed op de grenzen: < of <= maakt het verschil tussen “tot” en “tot en met”.

Wanneer for, wanneer while?

Een for-lus en een while-lus kunnen allebei herhalen. De keuze hangt af van wat je op voorhand weet:

Alles wat je met een for-lus kan, kan in principe ook met een while-lus en omgekeerd. De for-lus is gewoon een compactere, leesbaardere manier om “herhaal een gekend aantal keer” op te schrijven.