Het for
statement wordt gebruikt om een instructieblok meerdere keren uit te voeren.
Een programmeerstructuur die een stuk code meerdere keren uitvoert, noemt met een lus (loop). Daarom wordt er vaak de naam for-lus of for-loop gebruikt. Een andere naam voor de for-lus is ‘iteratie’.
De algemene syntax van een for-lus ziet er als volgt uit:
for (initialisatie; voorwaarde; stap)
{
te herhalen instructieblok
}
Grafisch kunnen we dit met onderstaande flowchart voorstellen:
Bespreking:
if-else
statement plaatsen we ook bij het for
statement accolades rond het bijbehorende instructieblok. Indien dit instructieblok slechts uit één instructie bestaat, zijn de accolades optioneel. We maken echter de afspraak ze altijd te plaatsen.for (int i = 0; i < 10; i++)
{
Console.Write("{0} ", i);
}
Console.WriteLine("\nFirst instruction after the for loop");
/* Output
0 1 2 3 4 5 6 7 8 9
First instruction after the for loop
*/
Grafisch kunnen we dit met onderstaande flowchart voorstellen:
Bespreking: De parameters tussen haakjes zijn:
Opmerkingen:
\n
. Dit genereert een enter in de uitvoer. De zin “First instruction after the for loop” verschijnt dus op een nieuwe regel.Opmerking
for (char c = 'a'; c <= 'z'; c++)
{
Console.Write("{0} ", c);
}
Console.WriteLine("\nFirst instruction after the for loop");
/* Output
a b c ... x y z
First instruction after the for loop
*/
Bespreking:
for (int i = 10; i < 100; i += 2)
{
Console.Write("{0} ", i);
}
Console.WriteLine("\nFirst instruction after the for loop");
/* Output
10 12 14 16 ... 96 98
First instruction after the for loop
*/
Bespreking:
i+=2
geeft i=i+2
. Maak niet de fout om i+2
bij de derde paramater te plaatsen. Dit wijzigt de teller niet en de for-lus werkt niet correct.int max = 40;
for (int i = 0; i < max; i += 2)
{
Console.Write("{0} ", i);
}
Console.WriteLine("\nFirst instruction after the for loop");
/* Output
0 2 4 6 ... 36 38
First instruction after the for loop
*/
Bespreking: In de voorwaarde wordt er gebruik gemaakt van de variabele max.
Vanzelfsprekend kan ook bij de initialisatie van de teller i een variabele gebruikt worden, zoals onderstaand voorbeeld aantoont.
int min = 30
int max = 40;
for (int i = min; i < max; i += 2)
{
Console.Write("{0} ", i);
}
Console.WriteLine("\nFirst instruction after the for loop");
/* Output
30 32 34 36 38
First instruction after the for loop
*/
for (int i = 0; i < 10; i++)
{
Console.Write("{0} ", i);
if (i == 5)
{
Console.WriteLine("\nWe make the loop end at number 5!");
break;
}
}
Console.WriteLine("First instruction after the for loop");
/* Output
0 1 2 3 4 5
We make the loop end at number 5!
First instruction after the for loop
*/
Bespreking:
break
gegeven. Het break
statement zal de lus volledig stoppen en zorgt ervoor dat het programma naar de eerste instructie na de for-lus springt. Dus ook al heeft de teller de bovengrens nog niet bereikt, de for-lus eindigt toch.for (int i = 0; i < 10; i++)
{
if (i < 8)
{
continue;
}
Console.WriteLine(i);
}
Console.WriteLine("First instruction after the for loop.");
/*
Output:
8
9
First instruction after the for loop
*/
Bespreking:
continue
statement uitgevoerd. Van zodra de teller i een waarde 9 of hoger krijgt, wordt het continue
statement niet meer uitgevoerd.continue
statement stopt de huidige iteratie van de lus. Dit betekent dat alle instructies binnen de lus die volgen op continue
niet meer uitgevoerd worden. De lus stopt echter niet volledig, de teller wordt met de stapgrootte verhoogd en de volgende iteratie van de lus start.Open het project oefening-for-1 en maak de oefeningenreeks