do-while

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

do-while 迴圈只有一種語法:

<?php
$i 
0;
do {
   echo 
$i;
} while (
$i 0);
?>

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

資深的 C 語系會員可能熟悉另一種不同的 do-while 迴圈用法,把語句放在 do-while(0) 之中,在迴圈內定用 break 語句來結束執行迴圈。以下代碼片段示範了此方法:

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

    
/* process i */

} while(0);
?>

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