首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 循環控制語句詳解:continue、break、exit、goto 與 return 的差異

     編輯:PHP 相關知識

PHP 中常見的循環結構包括 for、while、do...while 以及 foreach。在這些循環中,若要提前結束或跳過某次迭代,主要有以下幾種方式:continue、break、exit、goto(已棄用)以及 return。本文將逐一解析它們的行為差異,並附上實際程式碼範例。

基礎範例:while 循環中的跳出控制

<?php
$i = 1;
while (true) {
    if ($i == 2) { // 跳過 2
        $i++;
        continue;
    } else if ($i == 5) { // 遇到 5 直接跳出循環
        break;
    } else {
        echo $i . '<br>';
    }
    $i++;
}
exit; // 結束整個腳本執行
echo '這裡不輸出';
?>

輸出結果:

1
3
4

continue:跳過本次迭代

continue 僅用於循環結構中,作用是放棄本次循環剩餘代碼,直接進入下一次迭代。若在非循環結構(如 if、switch)中使用會報錯。

<?php
for ($i = 1; $i <= 100; $i++) {
    if ($i % 3 == 0 || $i % 7 == 0) {
        continue; // 能被 3 或 7 整除則跳過輸出
    } else {
        echo $i . '<br/>';
    }
}
?>

此程式會輸出 100 以內既不能被 3 整除也不能被 7 整除的自然數。

break:跳出當前循環或 switch

break 可用於各類循環及 switch 語句,用於跳出當前語法結構,繼續執行後續代碼。可接受一個可選參數 n,表示跳出的循環層數(預設為 1)。

for ($i = 1; $i <= 10; $i++) {
    for ($j = 1; $j <= 10; $j++) {
        $m = $i * $i + $j * $j;
        echo $m . '<br/>';
        if ($m < 90 || $m > 190) {
            break 2; // 直接跳出兩層循環
        }
    }
}

若移除參數 2,僅會跳出內層循環,外層循環繼續執行,結果將截然不同。

goto:無條件跳轉(不推薦)

goto 實際上是一個運算符,可將執行流程跳轉到指定標籤位置。雖可借此跳出循環,但會嚴重降低程式碼可讀性,PHP 5.3 及以上版本已停止支援,應盡量避免使用。

for ($i = 1000; $i >= 1; $i--) {
    if (sqrt($i) <= 29) {
        goto a; // 跳出循環
    }
    echo $i;
}
a:
echo " this is the end";

exit:終止腳本執行

exit 用於結束整個程式執行,可用在任何位置,本身無「跳出循環」的語義。可帶一個參數:字串會直接輸出,整數(0-254)作為退出狀態碼。

<?php
for ($i = 1000; $i >= 1; $i--) {
    if (sqrt($i) >= 29) {
        echo $i . '<br/>';
    } else {
        exit; // 直接結束腳本,後續 HTML 也不會輸出
    }
}
echo "本行將不會被輸出";
?>

return:結束函數或腳本並返回值

return 用於結束函數、include/require 引入的檔案,或主程式。在函數中會返回值給調用者;在主程式中相當於結束腳本執行。

<?php
for ($i = 1000; $i >= 1; $i--) {
    if (sqrt($i) >= 29) {
        echo $i . '<br/>';
    } else {
        return; // 效果同 exit,主程式直接停止
    }
}
echo "本行將不會被輸出";
?>

自然結束:滿足循環條件自動退出

當循環條件不再滿足時,循環自然結束,這是最基本、最推薦的方式。

總結

  • continue:跳過本次迭代,繼續下一次循環。
  • break:跳出當前循環(可指定層數),執行循環後代碼。
  • exit:終止整個腳本執行,後續代碼(含 HTML)均不執行。
  • goto:無條件跳轉,已棄用,不建議使用。
  • return:結束函數/引入檔案/主程式,並可返回值。

理解這些語句的差異,能幫助你更精確地控制 PHP 程式流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved