Op Youtube
Deze video maakt deel uit van de IIP playlist van de Youtube channel van Rogier van der Linde.
Let op: deze video's zijn al een paar jaar oud, dus hier en daar kunnen kleine afwijkingen voorkomen met deze cursus, die wel altijd up-to-date is.
Wat zijn iteraties
- Een ander woord voor iteratie is herhaling.
- = Herhaling van een groep statements (vast aantal keer of zolang aan voorwaarde wordt voldaan).
Iteratie-structuren
WHILE-iteratie
Voert instructieblok uit zolang aan een bepaalde voorwaarde wordt voldaan. Deze voorwaarde wordt eerst gecontroleerd (0 of meerdere keren herhaald).

while (voorwaarde)
{
// te herhalen instructies
}
Voorbeeld 1
Dit voorbeeld telt verder zolang het getal kleiner of gelijk aan 5 is:
int getal = 1;
while (getal <= 5)
{
Console.WriteLine(getal);
getal++;
}
1 2 3 4 5
Voorbeeld 2
Dit voorbeeld doet voort zolang het antwoord ja is:
string voortdoen = "ja";
while (voortdoen == "ja")
{
Console.WriteLine($"We doen voort...");
Console.Write("Voortdoen? ja of nee: ");
voortdoen = Console.ReadLine();
}
Console.WriteLine("We doen niet meer voort.");
We doen voort... Voortdoen? ja of nee: ja We doen voort... Voortdoen? ja of nee: ja We doen voort... Voortdoen? ja of nee: nee We doen niet meer voort.
DO WHILE-iteratie
Voert instructieblok uit zolang aan een bepaalde voorwaarde wordt voldaan. Statements worden éérst uitgevoerd, nadien pas wordt voorwaarde gecontroleerd (1 of meerdere keren herhaald).

do
{
// te herhalen instructies
}
while (voorwaarde);
Voorbeeld 1
Dit voorbeeld telt verder zolang het getal kleiner of gelijk aan 5 is:
int getal = 1;
do
{
Console.WriteLine(getal);
getal++;
}
while (getal <= 5);
1 2 3 4 5
Voorbeeld 2
Nog een typisch voorbeeld, een raadspelletje:
int geheimGetal = 7;
Console.WriteLine("Raad een getal tussen 1 en 10");
int getal;
do
{
Console.Write("Jouw gok: ");
getal = Convert.ToInt32(Console.ReadLine());
}
while (getal != geheimGetal);
Console.WriteLine("Geraden");
Raad een getal tussen 1 en 10 Jouw gok: 3 Jouw gok: 6 Jouw gok: 2 Jouw gok: 7 Geraden
FOR-iteratie
Een for-iteratie bestaat uit drie delen:
- begin: wordt uitgevoerd vóór de start van de iteratie
- voorwaarde: instructies worden herhaald zolang aan deze voorwaarde is voldaan
- increment: wordt uitgevoerd ná de instructies binnen de lus

for (begin; voorwaarde; increment)
{
// te herhalen instructies
}
Voorbeeld 1: oplopend tellen
for (int i = 1; i <= 5; i++)
{
Console.WriteLine(i);
}
1 2 3 4 5
Voorbeeld 2: tellen in sprongen van 2
Het increment hoeft niet altijd met één omhoog te gaan, onderstaande lus telt met sprongen van twee:
for (int i = 1; i <=10; i+=2)
{
Console.WriteLine(i);
}
1 3 5 7 9
Voorbeeld 3: aflopend tellen
Je kunt ook aftellen door gebruik te maken van de decrement-operator (−− of −=):
for (int i = 5; i >= 1; i−−)
{
Console.WriteLine(i);
}
5 4 3 2 1
FOREACH-iteratie
Met een foreach-iteratie kan je door alle elementen van een collectie itereren (array's, lijsten, ListBoxItem's, ...).
Console voorbeeld: karakters van een string overlopen
Een string is een collectie van karakters (char's) en kan je dus ook overlopen d.m.v. een foreach-iteratie:
string str = "Hello!";
foreach (char letter in str)
{
Console.WriteLine(letter);
}
H e l l o !
WPF voorbeeld: items van een ListBox overlopen
Foreach wordt ook veel gebruikt in WPF, b.v. om de Items van een ListBox te overlopen
Flow control met continue en break
continue
Met continue kan je de huidige lus onderbreken en overslaan. Voorbeeld met een for-lus (werkt ook met andere lussen):
for (int i = 1; i <= 10; i++)
{
if (i == 2 || i == 7) continue; // sla 2 en 7 over
Console.WriteLine(i);
}
1 3 4 5 6 8 9 10
Het mag op meerdere plaatsen voorkomen. Vorig fragment herschreven:
for (int i = 1; i <= 10; i++)
{
if (i == 2) continue; // sla 2 over
if (i == 7) continue; // sla 7 over
Console.WriteLine(i);
}
In sommige gevallen kan continue je code leesbaarder maken, maar meestal is het overbodig. Vorig voorbeeld kan je bijvoorbeeld ook zo schrijven:
for (int i = 1; i <= 10; i++)
{
if (i != 2 && i != 7) Console.WriteLine(i);
}
break
Met break kan je de iteratie afbreken. Voorbeeld met een for:
for (int i = 1; i <= 10; i++)
{
if (i == 7) break; // onderbreek bij 7
Console.WriteLine(i);
}
1 2 3 4 5 6
Voorbeeld met een while:
Random random = new Random();
while (true) // eindeloze lus
{
int worp = random.Next(1, 7);
if (worp == 6) {
Console.WriteLine("6 gegooid!");
break;
}
Console.WriteLine($"{worp} gegooid...");
}
2 gegooid... 3 gegooid... 1 gegooid... 3 gegooid... 6 gegooid!
Het gebruik van break wordt in alle gevallen afgeraden en is verboden in deze cursus. Het getuigt van slechte programmeerstijl! Vorig fragment kan je bijvoorbeeld veel netter herschrijven als:
Random random = new Random();
int worp;
do
{
worp = random.Next(1, 7);
Console.WriteLine($"{worp} gegooid...");
} while (worp != 6);
Console.WriteLine("6 gegooid!");
Juiste iteratie kiezen
- aantal iteraties afhankelijk van voorwaarde, 0 of meer keer:
while - aantal iteraties afhankelijk van voorwaarde, 1 of meer keer:
do while - vast aantal iteraties:
for - itereren over alle elementen binnen een verzameling:
foreach
