do..while

A do..while ciklusok nagyon hasonlóak a while ciklusokhoz, a különbség mindössze annyi, hogy a kifejezés igaz volta itt az iteráció végén értékelődik ki, és nem az elején. A fő különbség a hagyományos while ciklushoz képest, hogy a do..while ciklus első iterációja garantáltan lefut (a kifejezés igazságértékét csak az iteráció végén ellenőrzi), amely nem garantált a hagyományos while ciklusnál (itt a kifejezés igazságértéke az iteráció kezdetén kerül kiértékelésre, ha értéke kezdetben FALSE, akkor a ciklus végrehajtása azonnal befejeződik).

Csak egy szintaxisa van a do..while ciklusnak:

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

A fenti ciklus pontosan egyszer fut le, mert az első iteráció után, amikor a kifejezés igazságértéke vizsgálatra kerül, kiderül, hogy FALSE ($i nem nagyobb, mint 0) és a ciklus végrehajtása befejeződik.

Haladó C programozók már bizonyára jártasak a do..while ciklus másfajta használatában. Például utasításblokk közepén ki lehet lépni a blokkból, ha az utasításblokkot do..while(0), közé tesszük, és break utasítást használunk. A következő kódrészlet ezt szemlélteti:

do {
    if ($i < 5) {
        print "i nem elég nagy";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
    print" i most jó";

     ...i feldolgozása...

} while(0);

Ne aggódj, ha ezt nem azonnal vagy egyáltalán értetted meg. Lehet szkripteket - sőt hatékony szkripteket - írni ennek a lehetőségnek a használata nélkül is.