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