do..while

do..whilewhile 循環非常相似,區別在於表達式的值是在每次循環結束時檢查而不是開始時。和正規的 while 循環主要的區別是 do..while 的循環語句保証會執行一次(表達式的真值在每次循環結束後檢查),然而在正規的 while 循環中就不一定了(表達式真值在循環開始時檢查,如果一開始就為 FALSE 則整個循環立即終止)。

do..while 循環只有一種語法:

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

以上循環將正好執行一次,因為經過第一次循環後,當檢查表達式的真值時,其值為 FALSE($i 不大於 0)而導致循環終止。

資深的 C 語言用戶可能熟悉另一種不同的 do..while 循環用法,把語句放在 do..while(0) 之中,在循環內部用 break 語句來結束執行循環。以下代碼片段示範了此方法:

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);

如果你還不能立刻理解也不用擔心。即使不用此“特性”你也照樣可以寫出強大的代碼來。