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.
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.
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:
| Deel | Voorbeeld | Wat het doet |
|---|---|---|
| beginwaarde | int i = 0 | Declareert een variabele i met startwaarde 0. Deze variabele is enkel gekend binnen de lus. Dit deel wordt één keer uitgevoerd, helemaal in het begin. |
| voorwaarde | i < 10 | Bepaalt hoeveel keer de herhaling gebeurt. Zolang de voorwaarde waar is (i kleiner dan 10), worden de instructies tussen de accolades uitgevoerd. |
| ophoging | i++ | 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:
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”.
Een for-lus en een while-lus kunnen allebei herhalen. De keuze hangt af van wat je op voorhand weet:
stop typt”)? Kies dan
een while-lus.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.