PHP流程控制之if語(yǔ)句多種嵌套
王思總同學(xué)我們?cè)谧铋_始的故事中講到了他有兩個(gè)秘書:一個(gè)生活秘書、一個(gè)工作秘書。
王思總同學(xué)在出行和項(xiàng)目中也是極度有計(jì)劃性。他給自己的生活秘書和工作秘書分別指派了出差的行程:
生活上:
?先查天氣,下雨帶雨具和毛巾。不下雨要帶防曬霜
?雨具、毛巾和防曬霜的情況要提前檢查,如果沒有要及時(shí)買工作上:
?要提前溝通去大連前的工作計(jì)劃,準(zhǔn)備好了要及時(shí)檢查,檢查合格,打印簽單。
? 沒有及時(shí)準(zhǔn)備好的情況下,要列出主要的項(xiàng)目溝通議題。
類似于上面的這種情況判斷,我們就需要用到if...elseif...else反復(fù)嵌套的結(jié)構(gòu)了。
在if語(yǔ)句中可以嵌套一個(gè)或多個(gè)if語(yǔ)句,以實(shí)現(xiàn)對(duì)多個(gè)參數(shù)的判斷,這就是if語(yǔ)句的多種嵌套。其結(jié)構(gòu)形式如下:
<?php if(判斷1){ if(判斷2){ 代碼段 1 }else{ 代碼段2 } }else{ if(判斷3){ 代碼段3 }else{ 代碼段4 } } ?>
我們用流程圖來表示如下:
注意:
- 我們?cè)诖a段1,2,3,4中可以再加入判斷。根據(jù)實(shí)際情況還可以再加入嵌套
- 注意縮進(jìn),縮進(jìn)的作用只是使代碼富有層次感,美觀易讀,對(duì)目標(biāo)代碼的生成毫無影響。
我們把王思總同學(xué)的生活要求,我們可以用代碼用嵌套結(jié)構(gòu)表示出來。我們使用到了三層嵌套結(jié)構(gòu),代碼如下:
<?php //0表示工作秘書,1表示生活秘書 //用代碼模擬隨機(jī)產(chǎn)生當(dāng)前的工作是生活秘書的還是工作秘書的 $mishu = rand(0,1); if($mishu){ //下雨和不下雨的狀態(tài),隨機(jī)產(chǎn)生 //下雨?duì)顟B(tài)為1 //不下雨?duì)顟B(tài)為0 $xiyu = rand(0,1); if($xiyu){ //是否購(gòu)買雨傘 $you = rand(0,1); if($you){ echo '下雨天,已購(gòu)買不用買雨傘'; }else{ echo '下雨天,未購(gòu)買,需要買雨傘'; } }else{ //是否購(gòu)買防曬霜 $you = rand(0,1); if($you){ echo '沒下雨,有防曬霜'; }else{ echo '沒下雨,需要準(zhǔn)備防曬霜'; } } }else{ //是否準(zhǔn)備好了會(huì)議議程 $shifou = rand(0,1); if($shifou){ echo '已準(zhǔn)備好,可以隨時(shí)出發(fā)'; }else{ echo '沒有準(zhǔn)備好,需要打印,延遲出發(fā)'; } }
警告:對(duì)于編程新手,在使用這種嵌套if...else循環(huán)時(shí),請(qǐng)小心使用。因?yàn)樘鄬拥难h(huán)容易使設(shè)計(jì)的邏輯出問題,或者少打了大括號(hào)等,都會(huì)導(dǎo)致程序出現(xiàn)莫名其妙的問題。
希望你能夠默寫出來。并且,不能有一丁點(diǎn)的語(yǔ)法錯(cuò)誤。在以后,我們隨時(shí)用,要在大腦當(dāng)中立馬產(chǎn)生反映,動(dòng)手就寫。