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