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 '没有准备好,需要打印,延迟出发'; } }
提交重置代码
章节
笔记
提问
课件
反馈
捐赠

php入门教程之一周学会PHP

高并发千万级数据库系统解决方案
  • 推荐课程
  • 评论
  • 问答
  • 笔记
  • 课件下载
ʘᴗʘ

ʘᴗʘ

<?php $mishu=rand(0,1); if($mishu){ $tianqi=rand(0,1); if($tianqi){ $san=rand(0,1); if($san){ echo '下雨,有伞'; }else{ echo '下雨,没有伞'; }

3年前    添加回复 0

回复
王统帅

王统帅

为什么运行之后啥都没有?

3年前    添加回复 0

回复
y的小公举

y的小公举

自学的困难只有自己知道,如何让学习不再困难让学习提高效率

4年前    添加回复 0

回复
光

我都是习惯性写if跟else的时候在打代码前,先把{}大括号打好这样比较不会漏,只需要注意else不要放错大括号后面就可以了

4年前    添加回复 0

回复
生活一家

生活一家

还是太单纯了,这逻辑不是想XX就XX的

4年前    添加回复 0

回复
Aの汉

Aの汉

还真是,少了一个},else 后特别容易忘记

4年前    添加回复 0

回复
我只是一条咸鱼哈

我只是一条咸鱼哈

加油加油加加加油

4年前    添加回复 0

回复

if($mishu没有判断条件怎么执行的呢?

[最新 Autumn 的回答]if条件里面尽量不要写赋值语句

时间:3年前

挪威的森林

挪威的森林

随机函数为rand()

2年前 0

天黑请闭眼

天黑请闭眼

<?php $mishu = rand(0,1); if($mishu){ $week = rand(0,1); if($week){ $you = rand(0,1); if($you){ echo "带了雨伞"; }else{ echo "没带雨伞"; } } else{ $you = rand(0,1); if($you){ echo "带上防晒霜"; }else{ echo "没带防晒霜"; } } }else{ $status = rand(0,1); if($status){ echo "准备好了"; }else{ echo "没准备好"; } }

3年前 0

waiting for.

waiting for.

<?php //0表示工作秘书,1表示生活秘书 //用代码模拟随机产生当前的工作是生活秘书的还是工作秘书的 $mishu = rand(0,1); echo $mishu,'<br/>'; if($mishu){ //下雨和不下雨的状态,随机产生 //下雨状态为1 //不下雨状态为0 $xiyu = rand(0,1); echo $xiyu,'<br/>'; if($xiyu){ //是否购买雨伞 $you = rand(0,1); echo $you,'<br/>'; if($you){ echo '下雨天,已购买不用买雨伞'; }else{ echo '下雨天,未已购买,需要买雨伞'; } }else{ //是否购买防晒霜 $you = rand(0,1); echo $you,'<br/>'; if($you){ echo '没下雨,有防晒霜'; }else{ echo '没下雨,需要准备防晒霜'; } } }else{ //是否准备好了会议议程 $shifou = rand(0,1); echo $shifou,'<br/>'; if($shifou){ echo '已准备好,可以随时出发'; }else{ echo '没有准备好,需要打印,延迟出发'; } }

3年前 0

3期-Shawn

3期-Shawn

王思总同学我们在最开始的故事中讲到了他有两个秘书:一个生活秘书、一个工作秘书。 王思总同学在出行和项目中也是极度有计划性。他给自己的生活秘书和工作秘书分别指派了出差的行程: 生活上: 先查天气,下雨带雨具和毛巾。不下雨要带防晒霜 雨具、毛巾和防晒霜的情况要提前检查,如果没有要及时买 工作上: 要提前沟通去大连前的工作计划,准备好了要及时检查,检查合格,打印签单。 没有及时准备好的情况下,要列出主要的项目沟通议题。 类似于上面的这种情况判断,我们就需要用到if...elseif...else反复嵌套的结构了。 在if语句中可以嵌套一个或多个if语句,以实现对多个参数的判断,这就是if语句的多种嵌套。其结构形式如下: <?php if(判断1){ if(判断2){ 代码段 1 }else{ 代码段2 } }else{ if(判断3){ 代码段3 }else{ 代码段4 } } ?> 我们把王思总同学的生活要求,我们可以用代码用嵌套结构表示出来。我们使用到了三层嵌套结构,代码如下: <?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循环时,请小心使用。因为太多层的循环容易使设计的逻辑出问题,或者少打了大括号等,都会导致程序出现莫名其妙的问题。 希望你能够默写出来。并且,不能有一丁点的语法错误。在以后,我们随时用,要在大脑当中立马产生反映,动手就写。

4年前 0

博龙

博龙

if中嵌套if……else;else中嵌套if……else

4年前 0

青草地

青草地

<?php $tianqi = rand(0,1); //天气 0晴天;1雨天 if ($tianqi == 0){ //晴天 $fss = rand(0,1); //防晒霜 0未购买,1已购买 if ($fss ==0){ //未购买 echo "晴天,请购买防晒霜"; }else{ //已购买 echo "晴天,请带好防晒霜"; } }else{ //雨天 $yj = rand(0,1); //雨具和毛巾(0未购,1已购) if ($yj == 0){ //未购买 echo "雨天,请购买雨具和毛巾"; }else{ //已购买 echo "雨天,请带好雨具和毛巾"; } } echo "<br/>"; echo "<br/>"; $gongzuo = rand(0,1); //工作(0未准备;1已准备) if ($gongzuo ==0){ //未准备 echo "请列出主要的项目沟通议题"; }else{ //已准备 $jiancha = rand(0,1); //合格(0不合格;1合格) if ($jiancha == 0){ //不合格 echo "检查不合格,重新检查"; }else{ //合格 echo "检查合格,请打印签单"; } } ?>

4年前 0

 酔心

 酔心

<?php $miao=rand(0,1); if($miao){ $color=rand(0,1); //0代表黄色,1代表黑色 if($color){ echo '黄色的喵,它是黄胖子'; } else { echo '黑色的喵,它是舒辣酱'; } } else{ $tizhogn=rand(0,1); //0代表吃的多,1代表吃得少 if($tizhong){ echo '这么能吃,它是黄胖子'; } else{ echo '吃的这么少,它是舒辣酱'; } } ?>

4年前 0

小圈圈~

小圈圈~

<?php //0表示工作秘书,1表示生活秘书 //用代码模拟随机产生当前的秘书是工作秘书还是生活秘书 $mishu = rand(0,1); if($mishu){ //下雨和不下雨的状态随机 //下雨状态为1 //不下雨状态为2 $xiayu = rand(0,1); if($xiayu){ //是否购买雨伞 //1购买了雨伞,0未购买雨伞 $ys = rand(0,1); if($ys){ echo '下雨了,雨伞已经购买,王总我们可以干一些羞羞的事~'; }else{ echo '下雨了,王总稍等我一下,我先去买伞'; } }else{ //是否购买防嗮霜,1已购买,0未购买 $fs = rand(0,1); if($fs){ echo '没下雨,我这里有防嗮霜,王总要不要来看一看……'; }else{ echo '没下雨,我要去买防嗮霜,我也要像王总一样美美哒~'; } } }else{ //1表示已准备工作,0表示为准备工作 $gz = rand(0,1); if($gz){ echo '王总,文件就放在办公室,要不我们……'; }else{ echo '对不起,王总,工作我没做好,您惩罚我吧~'; } } ?> 学习就是要给自己寻找乐趣,哈哈

4年前 0

″ YoK1ng 丶

″ YoK1ng 丶

<?php //有两个美女秘书 $ms = rand(0,1); if($ms){ //可以,不可以 $xx = rand(0,1); if($xx){ echo"可以xx工作秘书"; }else{ echo"不可xx以工作秘书"; } }else{ //可以,不可以 $xx = rand(0,1); if($xx){ echo"可以xx生活秘书"; }else{ echo"不可xx以生活秘书"; } } ?>

5年前 2

课件暂不提供下载,工作人员正在整理中,后期请多关注该课程~