php 中 for循環(huán)火俄,while循環(huán)犯建,do{} while 循環(huán)以及foreach循環(huán) 區(qū)別

PHP中的循環(huán)結構大致有for循環(huán)while循環(huán)瓜客,do{} while 循環(huán)以及foreach循環(huán)幾種适瓦,不管哪種循環(huán)中,在PHP中跳出循環(huán)大致有這么幾種方式:


<?php


$i = 1;

while?(true) {?// 這里看上去這個循環(huán)會一直執(zhí)行

????if?($i==2){// 2跳過不顯示

???????$i++;

???????continue;

????}?else?if($i==5) {// 但到這里$i=5就跳出循循環(huán)了

???????break;

????}?else{

???????echo $i .?'<br>';

????}

????$i++;

}

exit;


echo'這里不輸出';

?>






結果:

1

3

4

continue

continue是用來用在循環(huán)結構中谱仪,控制程序放棄本次循環(huán)continue語句之后的代碼并轉而進行下一次循環(huán)玻熙。continue本身并不跳出循環(huán)結構,只是放棄這一次循環(huán)疯攒。如果在非循環(huán)結構中(例如if語句中嗦随,switch語句中)使用continue,程序將會出錯卸例。

例如在下面的這段PHP代碼片段中:


<?php

for($i = 1;$i <= 100; $i++ ){

if($i % 3 == 0 || $i % 7 == 0){

continue;

}

& #160;?else{

echo”$i \n<br/>”;

}

}

?>

PHP的代碼片段的作用是輸出100以內称杨,既不能被7整除又不能被3整除的那些自然數,循環(huán)中先用if條件語句判斷那些能被整除的數筷转,然后執(zhí)行continue;語句,就直接進入了下個循環(huán)悬而。不會執(zhí)行下面的輸出語句了呜舒。

break

break是被用在上面所提的各種循環(huán)和switch語句中的。他的作用是跳出當前的語法結構笨奠,執(zhí)行下面的語句袭蝗。break語句可以帶一個參數n唤殴,表示跳出循環(huán)的層數,如果要跳出多重循環(huán)的話到腥,可以用n來表示跳出的層數朵逝,如果不帶參數默認是跳出本重循環(huán)。

看下面這個多重循環(huán)嵌套的例子:

1

2

3

4

5

6

7

8

9

for($i = 1;$i <= 10; $i++ ){

????for($j = 1;$j <= 10;$j++){

????????$m = $i * $i + $j * $j;

????????echo”$m \n<br/>”;

????????if($m < 90 || $m > 190) {

????????????break?2;

???????}

????}

}


這里使用了break2跳出了兩重循環(huán)乡范,你可以試驗一眼配名,將2去掉,得到的結果是完全不一樣的晋辆。如果不使用參數渠脉,跳出的只是本次循環(huán),第一層循環(huán)會繼續(xù)執(zhí)行下去瓶佳。

goto

goto實際上只是一個運算符芋膘,和其他語言一樣,PHP中也不鼓勵濫用goto霸饲,濫用goto會導致程序的可讀性嚴重下降为朋。goto的作用是將程序的執(zhí)行從當前位置跳轉到其他任意位置,goto本身并沒有要結束的循環(huán)的作用厚脉,但其跳轉位置的作用使得其可以作為跳出循環(huán)使用习寸。但PHP5.3及以上版本停止了對goto的支持,所以應該盡量避免使用goto器仗。

下面的是一個使用了goto跳出循環(huán)的例子

1

2

3

4

5

6

7

8

for($i = 1000;$i >= 1 ; $i– ){

????if( sqrt($i) <= 29){

????????goto?a;

????}

????echo “$i”;

}

a:

echo”?this?is?the end”;

例子中使用了goto來跳出循環(huán)融涣,這個例子用來檢測1000以內,那些數的平方根大于29精钮。

exit

exit是用來結束程序執(zhí)行的威鹿。可以用在任何地方轨香,本身沒有跳出循環(huán)的含義忽你。exit可以帶一個參數,如果參數是字符串臂容,PHP將會直接把字符串輸出科雳,如果參數是integer整形(范圍是0-254),那個參數將會被作為結束狀態(tài)使用脓杉。

1

2

3

4

5

6

7

8

9

10

11

<?php

????for($i = 1000;$i >= 1 ; $i– ){

????????if( sqrt($i) >= 29){

????????????echo”$i \n<br/>”;

????????}

????????else{

????????????exit;

????????}

????}

????echo”本行將不會被輸出”;

?>

上面這個例子中直接在從循環(huán)里結束了代碼的運行糟秘,這樣會導致后面的代碼都不會被執(zhí)行,如果是在一個php web頁面里面球散,甚至連exit后面的html代碼都不會被輸出尿赚。

return

return語句是用來結束一段代碼,并返回一個參數的×杈唬可以從一個函數里調用悲龟,也可以從一個include()或者require()語句包含的文件里來調用,也可以是在主程序里調用冰寻,如果是在函數里調用程序將會馬上結束運行并返回參數须教,如果是include()或者require()語句包含的文件中被調用,程序執(zhí)行將會馬上返回到調用該文件的程序斩芭,而返回值將作為include()或者require()的返回值轻腺。而如果是在主程序中調用,那么主程序將會馬上停止執(zhí)行

1

2

3

4

5

6

7

8

9

10

11

<?php

????for($i = 1000;$i >= 1 ; $i– ){

????????if( sqrt($i) >= 29){

????????????echo”$i \n<br/>”;

????????}

????????else{

???????????return;

????????}

????}

????echo”本行將不會被輸出”;

?>

這里的例子和上面使用exit的效果是一樣的秒旋。

在循環(huán)結束條件约计,自然跳出

這個當然是最好理解了,當循環(huán)滿足循環(huán)臨界條件時就是自己退出迁筛。

以上是PHP中跳出循環(huán)的幾種方式的簡單總結煤蚌。

?if不是循環(huán)結構,所以不能使用break细卧,continue退出尉桩。如果你非要在if語句中這樣用的話,可以把這個if語句放在一個循環(huán)結構中

1

2

3

4

5

6

7

8

9

10

11

12

13

$i=0;

$s=1;

while($i==0)

{

????????if($s==1)

????????{

????????????????$v=8;

????????????????break;

????????}

????????$v=9;

}


echo $v;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末贪庙,一起剝皮案震驚了整個濱河市蜘犁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌止邮,老刑警劉巖这橙,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異导披,居然都是意外死亡屈扎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門撩匕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹰晨,“玉大人,你說我怎么就攤上這事止毕∧@” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵扁凛,是天一觀的道長忍疾。 經常有香客問我,道長谨朝,這世上最難降的妖魔是什么膝昆? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任帮寻,我火速辦了婚禮列敲,結果婚禮上,老公的妹妹穿的比我還像新娘啊奄。我一直安慰自己纬朝,他們只是感情好收叶,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著共苛,像睡著了一般判没。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上隅茎,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天澄峰,我揣著相機與錄音,去河邊找鬼辟犀。 笑死俏竞,一個胖子當著我的面吹牛,可吹牛的內容都是我干的堂竟。 我是一名探鬼主播魂毁,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼出嘹!你這毒婦竟也來了席楚?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤税稼,失蹤者是張志新(化名)和其女友劉穎烦秩,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體郎仆,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡只祠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了丸升。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铆农。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖狡耻,靈堂內的尸體忽然破棺而出墩剖,到底是詐尸還是另有隱情,我是刑警寧澤夷狰,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布岭皂,位于F島的核電站,受9級特大地震影響沼头,放射性物質發(fā)生泄漏爷绘。R本人自食惡果不足惜书劝,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望土至。 院中可真熱鬧购对,春花似錦、人聲如沸陶因。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽楷扬。三九已至解幽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間烘苹,已是汗流浹背躲株。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留镣衡,地道東北人霜定。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像捆探,于是被迫代替她去往敵國和親然爆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內容