do-while 迴圈獨特之處在於「先執行後判斷」,保證迴圈體至少執行一次,適用於菜單選單、輸入驗證等場景。
do {
迴圈體語句;
} while (條件表達式); // 注意結尾分號
| 迴圈類型 | 首次判斷 | 最少執行次數 | 適用場景 |
|---|---|---|---|
| while | 先判斷 | 0 次 | 條件可能初始為假 |
| do-while | 後判斷 | 1 次 | 必須先執行一次再決定 |
| for | 先判斷 | 0 次 | 計數器驅動 |
<?php
$i = 0;
do {
echo '<br />Hello, www.example.com!';
$i++;
} while ($i < 20);
?>
<?php
do {
echo "請輸入密碼 (8-16位): ";
$password = trim(fgets(STDIN));
$len = strlen($password);
if ($len < 8 || $len > 16) {
echo "長度不符合要求,請重新輸入\n";
}
} while ($len < 8 || $len > 16);
echo "密碼設定成功!";
?>
<?php
do {
echo "\n=== 主選單 ===\n";
echo "1. 查詢資料\n2. 新增資料\n3. 修改資料\n4. 刪除資料\n0. 離開\n";
echo "請選擇: ";
$choice = trim(fgets(STDIN));
switch ($choice) {
case '1': queryData(); break;
case '2': addData(); break;
case '3': editData(); break;
case '4': deleteData(); break;
case '0': echo "再見!"; break;
default: echo "無效選項!";
}
} while ($choice !== '0');
?>
break:跳出整個 do-while 迴圈continue:跳至 while (條件) 判斷,條件為真則繼續下一輪do-while 是「至少一次」語義的精確表達,用對場景能簡化邏輯,濫用則增加認知負擔。