Template:For construct

From TOI-Pedia

Het for-construct

Het while-construct is wel de meest eenvoudige vorm van een repetitieve structuur, maar daarom nog niet noodzakelijk de best leesbare. Stel bijvoorbeeld dat je een instructie(s) exact een aantal maal wil uitvoeren. Om dat aantal maal bij te houden heb je een variabele nodig die je eerst moet initialiseren, die vervolgens na elke uitvoering met een moet toenemen (of afnemen) en die tenslotte voor elke uitvoering gecontroleerd moet worden of deze een bepaalde waarde nog niet bereikt heeft. In het while-construct geeft dit drie afzonderlijke regels (instructies).

Het for-construct is precies van toepassing in een dergelijke situatie en combineert deze drie regels tot een enkele.

Het for-construct heeft de volgende vorm:

for (initialisatie; voorwaarde; iteratie)

instructie;


Of:

for (initialisatie; voorwaarde; iteratie) {

instructies;

}

Het for-construct leidt tot de volgende uitvoeringsvolgorde:

  • Vooreerst wordt de initialisatie uitgevoerd
  • [*] Vervolgens wordt de voorwaarde gecontroleerd
  • Indien aan de voorwaarde is voldaan
  • Dan wordt de instructie(s) uitgevoerd
  • Vervolgens wordt de iteratie uitgevoerd
  • Tenslotte herhaalt het proces zich vanaf [*]
  • Example:

    Aftellen van 5 naar 1.


    int $i;

    for ($i = 5; $i > 0; $i--) {

    print($i + "...\n");

    }

    print("Lancering!!!");


    Het for-in-construct

    Een repetitieve structuur wordt vaak gebruikt in combinatie met een array. Stel bijvoorbeeld dat je een array van objectnamen hebt en je wil op elk object een operatie uitvoeren of je bent op zoek naar een bepaald object uit de reeks dat beantwoordt aan een of meerdere voorwaarden. Dan wil je de elementen (objectnamen) in de array één voor één langslopen en de operatie uitvoeren of de voorwaarden controleren.

    Daar je op voorhand weet hoeveel maal je de instructies zal herhalen, net evenveel maal als de lengte van de array, ligt het gebruik van het for-construct voor de hand.

    Example:

    string $kleuren[] = {"blauw", "rood", "zwart"};

    int $lengte = size($kleuren);

    int $index;

    for ($index = 0; $index < $lengte; $index++) {

    print($kleuren[$index] + "\n");

    }

    Omdat deze toepassing van de repetitieve structuur over een array veelvuldig voorkomt bestaat er in MEL een variant op het for-construct voor arrays, met name, het for-in-construct. Dit neemt de noodzaak weg om eerst de lengte van de array te bepalen en vervolgens een index-variabele te declareren.


    Het for-in-construct heeft de volgende vorm:

    for ($element in $array) {

    instructies;

    }

    De variabele $element moet noodzakelijkerwijze van hetzelfde type zijn als de elementen van de array variabele $array .

    In de uitvoering van het for-in-construct wordt elke waarde in de array eenmalig en in volgorde toegekend aan de element-variabele. In elke herhaling van de instructies heeft de element-variabele dus een andere waarde afkomstig uit de array en elke waarde komt exact één maal voor, in de volgorde waarin de waarden in de array staan.

    Example:

    string $kleuren[] = {"blauw", "rood", "zwart"};

    string $element;

    for ($element in $kleuren) {

    print($element + "\n");

    }

    Attention: In dit specifieke voorbeeld is de repetitieve structuur eigenlijk overbodig en kan vervangen worden door een enkele instructie:

    print($kleuren);

    Personal tools
    Actions
    Navigation
    Tools