PHP流程控制之if語句多種嵌套

王思總同學我們在最開始的故事中講到了他有兩個秘書:一個生活秘書、一個工作秘書。

王思總同學在出遊和專案中也是極度有計劃性。他為自己的生活秘書和工作秘書分別指派了出差的行程:

生活上:
 先查天氣,下雨帶雨具和毛巾。不下雨要帶防曬乳
 雨具、毛巾和防曬乳的狀況要提前檢查,如果沒有要及時買

工作上:
 要事先溝通去大連前的工作計劃,準備好要及時檢查,檢查合格,列印簽單了。
  在沒有及時準備好的情況下,要列出主要的專案溝通議題。

類似於上面的這種情況判斷,我們就需要用到if...elseif...else反覆嵌套的結構了。

在if語句中可以嵌套一個或多個if語句,以實現對多個參數的判斷,這就是if語句的多種嵌套。其結構形式如下:

<?php
if(判断1){
    if(判断2){
            代码段 1    
    }else{
            代码段2
        }
}else{
    if(判断3){
            代码段3
        }else{
            代码段4
        }
}
?>

我們用流程圖來表示如下:
2015-08-08/55c5a2ff40df7

#注意:

  1. 我們在程式碼片段1,2 ,3,4中可以再加入判斷。根據實際情況還可以再加入嵌套
  2. 注意縮進,縮排的作用只是使程式碼富有層次感,美觀易讀,對目標程式碼的生成毫無影響。

我們把王思總同學的​​生活要求,我們可以用程式碼用巢狀結構表示出來。我們使用到了三層嵌套結構,程式碼如下:

<?php
//0表示工作秘书,1表示生活秘书
//用代码模拟随机产生当前的工作是生活秘书的还是工作秘书的
$mishu = rand(0,1);

if($mishu){
       //下雨和不下雨的状态,随机产生
       //下雨状态为1
       //不下雨状态为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 '已准备好,可以随时出发';
    }else{
         echo '没有准备好,需要打印,延迟出发';
    }

}

#警告:對於程式設計新手,在使用這種嵌套if...else循環時,請小心使用。因為太多層的迴圈容易使設計的邏輯出問題,或是少打了大括號等,都會導致程式出現莫名其妙的問題。

希望你能夠默寫出來。並且,不能有一丁點的語法錯誤。以後,我們隨時用,要在大腦當中立馬產生反映,動手就寫。

繼續學習
||
<?php //0表示工作秘书,1表示生活秘书 //用代码模拟随机产生当前的工作是生活秘书的还是工作秘书的 $mishu = rand(0,1); if($mishu){ //下雨和不下雨的状态,随机产生 //下雨状态为1 //不下雨状态为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 '已准备好,可以随时出发'; }else{ echo '没有准备好,需要打印,延迟出发'; } }