3min

Tags in dit artikel

, , ,

For en while lus

Naast het maken van beslissingen is het ook nodig om herhalingen in de code aan te brengen. Dat wordt vooral van belang als er met grotere collecties gegevens wordt gewerkt. C# kent soorten lussen: for, while en foreach. Voor die laatste is het nodig om meer kennis te hebben over arrays, welke in een latere tutorial meer wordt besproken.

For lus

De for lus is een zeer compacte lus om herhaling van een stel instructies te doen. De for lus ziet er als volgt uit:
CSHARP Code
1
2
3
4
for ([initalisatie instructie]; [voorwaarde]; [iteratie instructie]
{
    [instructies..]
}


Dit ziet er wellicht wat verwarrend uit; maar een uitleg over elk stukje:
  • Initalisatie instructie: Hier komt een instructie te staan die 1 keer wordt uitgevoerd, voordat de lus begint. Dit is meestal het aanmaken van een variabele, die nodig is om te bepalen hoeveel keer de herhaling al is uitgevoerd.
  • Voorwaarde: De voorwaarde geeft aan wanneer er nog een iteratie (herhaling) mag gebeuren. Als de voorwaarde waar is, wordt de instructies nog een keer uitgevoerd. Als de voorwaarde niet waar is, wordt de for lus met de code tussen de accolades overslagen.
  • Iteratie instructie: Hier komt een instructie te staan die wordt uitgevoerd na een iteratie (de instructies die tussen de accolades staan). Meestal wordt hier de variabele met 1 opgehoogd; zodat de herhaling is geteld.
  • Instructies: De code die moet worden herhaald


Een voorbeeld staat hier onder:
CSHARP Code
1
2
3
4
for (int i = 0; i < 10; i++)
{
    Console.WriteLine(i);
}


Er komen op het scherm nu 10 regels met 0 t/m 9 te staan. Aanvankelijk wordt een integer i aangemaakt, en die op 0 gezet. De voorwaarde i<10 wordt bekenen; en die is waar. i is immers 0, dus kleiner dan 10. De waarde van i wordt weggeschreven op een nieuwe regel. Vervolgens wordt i met 1 verhoogd (de iteratie instructie). Nu wordt weer de voorwaarde bekeken; nu is 1, dus alsnog kleiner dan 10. Dit wordt weer op het scherm gezet, enz. Net zolang totdat net het getal 9 op het scherm is gezet. Dan wordt i met 1 opgehoogd, dus 10. 10 is niet kleiner dan 10, dus de voorwaarde is onwaar. De for lus is nu klaar, en de rest van het programma (wat er onder zou kunnen staan) wordt uitgevoerd.

While lus

Een while lus is een simpelere for lus (of beter gezegd; for lus een ‘ingewikkeldere’ while lus). In de while lus wordt enkel met voorwaarde gewerkt:
CSHARP Code
1
2
3
4
while ([voorwaarde])
{
    [instructies]
}


De voorwaarde is in dit geval de voorwaarde die waar moet zijn voor een herhaling. De instructies worden in dat geval dan herhaalt. Het is hier bij nodig om in je instructies iets op te nemen dat de voorwaarde onwaar wordt; anders zal die code oneindig lang blijven doorlopen, en uiteindelijk je programma vastlopen. Mochten we dezelfde teller als bij de for lus in een while lus maken, kan dat als volgt. Je ziet dan misschien ook beter waar de codes van de for lus komen te staan:

CSHARP Code
1
2
3
4
5
6
7
8
9
10
// Initalisatie
int i = 0;
 
while(i < 10)
{
    Console.WriteLine(i);
 
    // Iteratie code
    i++;
}


In dit geval zal i ooit een keer groter of gelijk worden aan 10 waardoor de voorwaarde onwaar wordt.