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éke csak az iteráció végén ellenőrződik), ami nem garantált a hagyományos while ciklusnál (itt a kifejezés igazságértéke az iteráció kezdetén értékelődik ki, ha értéke FALSE kezdetben, a ciklus végrehajtása azonnal befejeződik).

Csak egy szintaxisa van a do..while ciklusnak:

  1 
  2 
  3 $i = 0;
  4 do {
  5    print $i;
  6 } while ($i>0);
  7 
  8      

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:

  1 
  2 
  3 do {
  4     if ($i < 5) {
  5         print "i nem elég nagy";
  6         break;
  7     }
  8     $i *= $factor;
  9     if ($i < $minimum_limit) {
 10         break;
 11     }
 12     print" i most jó";
 13 
 14      ...i feldolgozása...
 15 
 16 } while(0);
 17 
 18      

Ne aggódj, ha nem érted ezt azonnal, vagy ha egyáltalán nem érted. Írhatsz scripteket, sőt hatékony scripteket ennek a 'feature'-nek a használata nélkül is. [én például most láttam először].