首頁 > 後端開發 > PHP問題 > PHP循環學習五:如何跳脫循環? 5種方法淺析

PHP循環學習五:如何跳脫循環? 5種方法淺析

青灯夜游
發布: 2023-03-11 21:08:01
原創
16107 人瀏覽過

在之前的文章中,我們帶大家學習了PHP中的幾個循環控制結構(while循環do-while循環for循環foreach迴圈),並介紹了for迴圈語句和foreach迴圈語句遍歷數組的方法,有興趣的可以點擊連結查看,希望對大家有幫助!

迴圈語句可以在滿足條件的情況下重複執行某一個操作,但有時已經滿足條件但迴圈還沒結束,此時就需要跳出迴圈了。那麼在PHP中要如何跳出循環呢?今天就來跟大家分享5種跳出迴圈的方法:continue語句、break語句、goto語句、die()/exit()語句、return語句。

方法1:使用continue語句

continue語句的作用是跳出本次循環,接著執行下一次迴圈(放棄continue語句之後的程式碼並進行下一次循環)。

下面我們透過程式碼範例來看看。

範例1:輸出1~10 之間的所有偶數(偶數能被2整除)

<?php
    for ($i = 1; $i <= 10; $i++) {
        if($i % 2 != 0) {
            continue;
        }
        echo $i.&#39; <br>&#39;;
    }
?>
登入後複製

分析:

  • for ($i = 1; $i <= 10; $i ){}語句可以循環得到1~10 之間的所有數字

  • if($i % 2 != 0)語句用來判斷$i的值能整除2,不能整除則()中值為true,則執行continue;語句。

  • 在迴圈體中,使用if($i % 2 != 0)語句進行判斷,如果$i的值能整除2就使用「echo $i」輸出;如果$i的值不能整除2,則觸發continue;語句,跳出本次迴圈(不進行輸出),執行下一次迴圈。

輸出結果:

2
4
6
8
10
登入後複製

#方法2:使用break語句

break語句用於跳出目前的語法結構,可以終止循環體的程式碼並立即跳出當前的循環,執行循環之後的程式碼。

break和continue的不同點是:continue語句只是結束本次循環,而 break 語句會終止整個迴圈的執行。

沿用上面的範例1中程式碼,將continue;換成break;,會輸出什麼?

<?php
    for ($i = 1; $i <= 10; $i++) {
        if($i % 2 != 0) {
            break;
        }
        echo $i.&#39; <br>&#39;;
    }
?>
登入後複製

答案是:什麼也不輸出。為什麼會這樣尼?讓我們來分析一下:

forx迴圈一開始,$i=1,1小於10嗎?當然,然後開始執行迴圈中的if($i % 2 != 0)語句;

那麼1能整除2嗎?顯然是不能,因此()中值為true,則執行if中的「break;」語句,直接跳出整個循環了,根本沒有機會執行「echo $i.' < br>'”語句。

方法3:goto語句

#goto 的作用是將程式的執行從目前位置跳到其他任意位置。此目標位置可以用目標名稱加上冒號來標記(例如 name: ),而跳躍指令是 goto 之後接上目標位置的標記。

goto本身並沒有要結束的循環的作用,但其跳轉位置的作用使得其可以作為跳出循環使用。

下面我們透過程式碼範例來看看。

範例2:輸出1~10 之間的所有奇數(奇數不能被2整除)

<?php
for ($i = 1; $i <= 10; $i++) {
    if($i % 2 == 0) {
        goto a;
    }
    echo $i.&#39; <br>&#39;;
}
a:
?>
登入後複製

輸出:

1
登入後複製
登入後複製
登入後複製


goto其實只是一個運算符,使用有一定限制:跳轉的目標位置只能位於同一個檔案和作用域內。

goto 運算子僅在 PHP5.3 以上版本有效。

方法4:die()/exit()語句

exit 和die 這兩個名字指向的是同一個函數。

die()/exit() 的作用:結束程式執行的,可以用在任何地方。

沿用上面的範例3中程式碼,將goto語句換成die(),看看輸出

######
<?php
header("Content-type:text/html;charset=utf-8");
for ($i = 1; $i <= 10; $i++) {
    if($i % 2 == 0) {
        die();
    }
    echo $i.&#39; <br>&#39;;
}
?>
登入後複製
###輸出:###
1
登入後複製
登入後複製
登入後複製
## #die()/exit()函數只接受一個參數,可以是一個特定的數值,也可以是一個字串,也可以不輸入任何參數。如果參數是字串,PHP將會直接把字串輸出,如果參數是integer整形(範圍是0-254),那個參數將會被當作結束狀態使用。 ############方法5:return語句############return語句是用來結束一段程式碼,並且傳回一個參數的。 #########沿用上面的範例3中程式碼,將die()語句換成return語句,看看輸出######
<?php
header("Content-type:text/html;charset=utf-8");
for ($i = 1; $i <= 10; $i++) {
    if($i % 2 == 0) {
        return;
    }
    echo $i.&#39; <br>&#39;;
}
?>
登入後複製
###輸出:###
1
登入後複製
登入後複製
登入後複製

return语句可以在一个函数里调用,也可以从一个include()或者require()语句包含的文件里来调用,也可以是在主程序里调用。

好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程

推荐:PHP面试题大汇总(收藏)

以上是PHP循環學習五:如何跳脫循環? 5種方法淺析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板