Loops

Een lus doet precies wat het woord zegt, een stuk code herhalen totdat er aan een voorwaarde voldaan wordt. De eerste lus die ik ga bespreken is de While lus.

int x=0;

while (x<=10)
{
  cout << x\n;
  x++;
}
In dit voorbeeld zal de code in de while lus net zo lang geloopt worden totdat x groter dan 10 is. De code binnen de lus geeft de waarde van x aan en verhoogt deze telkens met 1 totdat x 11 is en dan gaat het programma verder.

Een bijzondere while lus is de while(1) lus die altijd waar is en dus altijd geloopt wordt, samen met continue en break kan deze lus zeer handig zijn.


int x=0;

while(true)
{
 
  cout << x;
  x++;

  if (x==10)
  {
    break;
  }

  if (x<10)
  {
    cout << "x is nog geen 10\n";
    continue;
  }
}
Wat er nu gebeurt is dat als x nog geen 10 is het tweede if statement uit wordt gevoerd die tekst op het scherm zet en door continue weer bij het begin van de loop begint. Als x uiteindelijk 10 is geworden wordt het eerste if statement uitgevoerd en wordt door break de loop afgesloten. Hoewel continue hier niet zo veel zin heeft (de loop wordt toch continu uitgevoerd) kun je dit natuurlijk ook in andere lussen gebruiken.

Do While

Dit is eigenlijk een gewone while lus met als enigste verschil dat deze achteraf de voorwaarde controleert waardoor de lus dus minimaal 1 keer wordt uitgevoerd.

int x=0;
do
{
  cout << x\n;
  x++
}while(x<=10)
Hier wordt dus eerst de lus uitgevoerd en daarna wordt pas gecontroleert of aan de voorwaarde wordt voldaan.

De for-lus

Dit is de laatste lus die ik ga bespreken en heeft ook weer een aantal bijzonderheden maar daar komen we zo wel eerst een voorbeeld van de standaard for-lus.

for (int x=0; x<=10; x++)
{
  cout << "x is kleiner dan 10\n";
}
Dit is niet zo moeilijk of wel, gewoon een while lus met alles in 1: variabele definieren, voorwaarde controleren, variabele veranderen. En natuurlijk is dit ook mogelijk met meerdere variabelen (int x=0, y=0; x<=10 && y<=10; x++, y++) en de mogelijk om lege statements te gebruiken door niks in te vullen (dit zal niet veel nut hebben maar je kunt het altijd even proberen).

Nog 1 ding dat wel makkelijk is om te weten is dat je lussen ook kunt nesten wat later in gamedevelopment wel eens makkelijk kan zijn om rijen en kolommen in te vullen (het idee van een spreadsheat). Hier zal ik een klein voorbeeldje van geven wat verder geen nut heeft maar dan heb je in ieder geval een idee hiervan.


for (int x=0; x<=10; x++)
{
  for (int y=0; y<=10; y++)
  {
  //hier komt de code
  }
}
Deze teorie zul je nog wel eens tegenkomen in programma's dus zorg dat je dit goed kent.

Succes

Vampire,