n00b pro

03. Iteraties

Dit hoofdstuk is onderdeel van de cursus C#. Andere cursussen in dezelfde reeks: HTML, CSS, Javascript, Ontwikkelomgeving.

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.

https://www.youtube.com/watch?v=aq0P6lPJgRs

Wat zijn iteraties

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-flowchart

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
resultaat in de console

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.
resultaat in de console

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).

while-flowchart

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
resultaat in de console

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
resultaat in de console

FOR-iteratie

Een for-iteratie bestaat uit drie delen:

for-flowchart

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
resultaat in de console

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
resultaat in de console

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
resultaat in de console

FOREACH-iteratie

Met een foreach-iteratie kan je door alle elementen van een collectie itereren (array's, lijsten, ListBoxItem's, ...).

Voorbeeld 1: 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
!
resultaat in de console

Voorbeeld 2: items van een ListBox overlopen

Foreach wordt ook veel gebruikt in WPF, b.v. om de Items van een ListBox te overlopen

Juiste iteratie kiezen