PHP流程控制之嵌套if...else...elseif结构

还记得本章开篇我们讲了一个王思总同学的例子:

王同学是生活极度充满娱乐化和享受生活的人。他抵达北京或者大连的时候做的事,他抵达后做的事情,如下:

半夜到达,先去夜店参加假面舞会
 早上抵达,爱在酒店泡个澡
 中午到达,会吃上一份神户牛肉
 晚上到达,总爱去找朋友去述说一下心中的寂寞

我们来了解一下他的语法规则【知识点要求:默写】

<?php
if(判断语句1){
    执行语句体1
}elseif(判断语句2){
    执行语句体2
}else if(判断语句n){
        执行语句体n
}else{
        最后的else语句可选
}

//后续代码
?>

上述结构表示:
如果判断语句1的值为真,则执行语句体 1。执行完成后进入后续代码段。
否则转入后面的判断语句2(elsif),判断语句2若为真,则执行语句体 2。
否则转入后面的判断语句n(elsif),判断语句2若为真,则执行语句体 n。
如果均不匹配则执行else语句。这种循环嵌套可以不含else语句,即只含有if、elseif语句。

注:elseif()也可以写成else if()

我们把上面的代码用流程图的形式表示清楚就如下图了:
2015-08-08/55c5966bd7af5

我们可以把王思总同学的例子通过PHP代码表示出来,代码表示结果如下:

<?php
//定义一个随机变量,抵达时间,随机0点至23点
$dida = rand(0,23);

if($dida > 6 && $dida < 10){
    echo '我爱泡澡';
}else if($dida >10 && $dida < 14){
    echo '吃神户牛肉';
}else if($dida >=19 && $dida < 22){
    echo '找一个朋友聊聊内心的寂寞';
}elseif($dida > 22 && $dida <= 23){
    echo '泡澡';

}elseif($dida >= 1 && $dida <3){
     echo '泡澡';
}else{
    echo '睡觉或者工作';
}


?>

作业:
写一个网页cj.html,向panduan.php页面以post方式提交分数段。分数段和显示的结果如下,要求如下:

  1. 0----60以下,不及格
  2. 60---70及格了,要努力
  3. 70---80  还不错
  4. 80---90   上清华有希望
  5. 90---100   你这辈子没希望了
  6. 100         更没希望了
  7. 100分以上    爱因斯坦转世啊,思密达!
  8. 不是一个数值类型或者小于0  请输入正确的分数。
继续学习
||
<?php //定义一个随机变量,抵达时间,随机0点至23点 $dida = rand(0,23); if($dida > 6 && $dida < 10){ echo '我爱泡澡'; }else if($dida >10 && $dida < 14){ echo '吃神户牛肉'; }else if($dida >=19 && $dida < 22){ echo '找一个朋友聊聊内心的寂寞'; }elseif($dida > 22 && $dida <= 23){ echo '泡澡'; }elseif($dida >= 1 && $dida <3){ echo '泡澡'; }else{ echo '睡觉或者工作'; } ?>
提交重置代码
章节
笔记
提问
课件
反馈
捐赠

php入门教程之一周学会PHP

  • 推荐课程
  • 评论
  • 问答
  • 笔记
  • 课件下载

″ YoK1ng 丶

<?php $fs = rand(0,100); if($fs > 0 && $fs<60){ echo"不及格,来盘王者荣耀压压惊。"; }elseif($fs>60 && $fs<80){ echo"及格了,来盘王者荣耀庆祝下。"; }elseif($fs>

7年前    添加回复 8

RocherY

<form action="b.php" method="GET"> <input type="text" name="box" method="GET"> <input type="submit" value="查询"

7年前    添加回复 2

小圈圈~

<?php @$cj = $_POST['cj']; if(!is_numeric($cj) || $cj < 0){ echo '同学请输入正确的成绩!!'; }else if($cj >= 0 && $cj < 60){ echo '不及格'; }else if($cj >60 && $cj <70 ){

7年前    添加回复 1

小圈圈~

为什么90-100没希望了。。。

7年前    添加回复 1

RocherY

<?php $cj=$_GET['box']; if(!is_numeric($cj)){ echo('请你输入数字类型');

7年前    添加回复 1

RocherY

html: <body> <form action="b.php" method="GET"> <input type="text" name="box" method="GET"> <input type="submit&quo

7年前    添加回复 1

luoshui

<html> <body> <form action="qiantao.php" method="post"> <input type="text" name="username" placeholder="请输入分数">

7年前    添加回复 1

好想睡懒觉、

7年前    添加回复 1

Forever

$chengji=$_POST['box'];if(is_numerice($chengji))||$chengji0 and $chengji=60 and $chengji

3年前    添加回复 0

cloudy

<?php $cj=$_POST['cjput']; if(!is_numeric($cj) || $cj<0){ echo '请输入正确的分数'; }elseif(0<=$cj and $cj<60){ echo '不及格'; }elseif(60<=$cj and $cj<70){ echo '及格了,要努力喔'; }elseif

6年前    添加回复 0

td

<?php $chengji = $_POST['mi']; echo $chengji; if(!is_numeric($chengji)){ echo '请输入数字'; }elseif($chengji < 60){ echo '不及格'; }elseif(60 <= $chengji && $chengji < 70){ echo '及格了,要努

6年前    添加回复 0

David Xu

<?php //$score = rand(0,100); $s = $_REQUEST['score2']; echo $s.'<br />'; if(!is_numeric ($s)){ echo "输入数字"; }else if($s>100){ echo '没有这么多分'; } else if($s>0

7年前    添加回复 0

大白兔

}elseif($score>=80 && $score<90){ echo "上清华有希望"; }elseif($score>=90 && $score<100){ echo "可以直接被哈佛录取"; }elseif($score==100){ echo

7年前    添加回复 0

大白兔

<?php $score = $_POST['score']; if($score>0 && $score<60){ echo "不及格"; }elseif($score>=60 && $score<70){ echo "及格了,要努力"; }e

7年前    添加回复 0

同同同同同同同

<form> <input type="text" name="num1"> <input type="submit" value="jisuan"> </form> <?php $dida=$_GET['num1']; //$dida=ra

7年前    添加回复 0

我的html页面一提交,网页便显示出了我的php代码,求问是什么原因?

[最新 钟老师 的回答] phpStudy技术文章:https://www.php.cn/phpstudy.html

时间:4年前

为什么每次打开都会显示else的输出语句,即"不是一个数值类型或者小于0,请输入正确的分数。"?还有就是 为什么会显示$grades这个变量名没有定义?

[最新 李铁蛋 的回答] 你这端代码应该没有错误,我特意复制了一下你的代码跑了一下.....  除了和你的文件名起的不一样 正常运行 只要你输入的是正常的数字  要是说变量未定义   你就检查一下你的拼写问题吧 

时间:6年前

为什么值传不过去

[最新 ringa_lee 的回答] 厉害厉害

时间:6年前

大于100输出不了

[最新 文富 的回答] 嗯,谢谢

时间:7年前

作业的答案问题

[最新 红红火火恍恍惚惚 的回答] HTML页面        成绩        PHP页面

时间:7年前

PHP运行

[最新 phpcn_u15277 的回答] 好的,谢谢了

时间:7年前

我嘗試使用看似可行的range()函數來完成作業,但運行上卻無法執行60分以上的分支,我想知道這種方式出錯的原因

[最新 猪哥 的回答] range() 生成的是一个数组,你POST过来的内容与range()进行比对(字符与数组无法比较),另外判断里面的等于是(==)两个等于号,你的判断条件全是一个=号,一个等于号是负值非判断。

时间:7年前

作业和疑问

[最新 o(-"-)o 的回答] 虽然你的时间很早了,但是我也有同样的问题,把整个php文件代码显示了,求问为什么。。。

时间:8年前

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