Forum und email

do..while

do..while loops lijken erg veel op while loops, alleen wordt de vergelijking nu gecontroleerd aan het einde van de interatie, in plaats van aan het begin. Het grootste verschil met normale while loops is dat er altijd minimaal één iteratie van een do..while loop wordt uitgevoerd. De expressie wordt namelijk pas aan het einde van de iteratie geëvalueerd, dit in tegenstelling tot de normale while loop, waar de expressie aan het begin van een iteratie wordt geëvalueerd, Als de expressie meteen al aan het begin evauleerd tot FALSE, dan zal de loop niet één keer worden uitgevoerd.

Er is maar één systax voor do..while loops:

$i = 0;
do {
   print $i;
} while ($i > 0);

De bovenstaande loop wordt exact één keer uitgevoerd. Als na de eerste iteratie, wanneer de expressie wordt geëvalueerd, de waarheids expressie evalueerd tot FALSE ($i is niet groter dan 0) dan eindigd de loop.

Gevorderde C programmeurs zullen bekend zijn met een ander gebruik van de do..while loop, namelijk om de executie in het midden van een blok code to stoppen. Dit kan door een groep statements te omvatten met do..while(0), en dan het break statement te gebruiken om naar het einde van de loop te springen. Het volgende voorbeeld demonstreert dit:

do {
    if ($i < 5) {
        print "i is niet groot genoeg";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limiet) {
        break;
    }
    print "i is ok";

     ...doe wat met i...

} while(0);

Vrees niet als je dit niet meteen bergijpt, of helemaal niet. Je kunt zeer complexe PHP scripts schrijven zonder gebruik te maken van deze `feature'.