Forum und email

迴圈

do.while 迴圈 和 while 迴圈差不多,但它到最後才檢查執行條件是否成立。 這樣保證了 do.while 中的指令起碼會被執行一次。 由於 while 是在一開頭便檢查條件, 所以用 while 的話可能一次循環也執行不了。

do.while 迴圈 只有一個句法, 沒有別的等效寫法 :

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

上面的程式只會跑一次, 因為指令執行完了才檢查條件才發現原來條件不成立於是跳出迴圈。

用 C 編程的高手可能懂得另一種 do.while 迴圈 的用法: 用 break 指令和 do.while(0) 迴圈來使程式在執行中途終止。下列程式段示範這一個用法:

do {
    if ($i < 5) {
        print "i is not big enough";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
    print "i is ok";

     ...process i...

} while(0);

縱使你看不出上面程式有什麼奧妙也沒關係。 就算不用 do.while 的這個特性也一樣可以寫出功能很強的程式。