您好,登錄后才能下訂單哦!
PHP中怎樣跳出循環,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
方法1:使用continue語句
continue語句的作用是跳出本次循環,接著執行下一次循環(放棄continue語句之后的代碼并進行下一次循環)。
下面我們通過代碼示例來看看。
示例1:輸出1~10 之間的所有偶數(偶數能被2整除)
<?php for ($i = 1; $i <= 10; $i++) { if($i % 2 != 0) { continue; } echo $i.' <br>'; } ?>
分析:
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.' <br>'; } ?>
答案是:什么也不輸出。為什么會這樣尼?我們來分析一下:
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.' <br>'; } 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.' <br>'; } ?>
輸出:
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.' <br>'; } ?>
輸出:
1
return語句可以在一個函數里調用,也可以從一個include()或者require()語句包含的文件里來調用,也可以是在主程序里調用。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。