嵌套条件分支结构
嵌套条件分支结构,也称为巢状条件分支结构。其实就是将if语句进行嵌套,即是在if或者else后面的语句块中又包含if语句。if语句可以无限层第嵌套在其他if语句中,这给程序的不同部分的条件执行提供了充分的弹性,是程序设计中经常使用的技术。其语法格式如下所示:
if(表达式1){
if(表达式2){
if(表达式3){
.... //可以无限的嵌套下去,但是实际开发中不太建议有太多层的if分支结构的嵌套
}else{
.... //可以无限的嵌套下去
}
}else{
if(表达式4){
.... //可以无限的嵌套下去
}else{
.... //可以无限的嵌套下去
}
}
}else{
if(表达式5){
.... //这里同样可以无限的嵌套下去
}else{
.... //这里同样可以无限的嵌套下去
}
}
其实,嵌套语句,类似于我们前面介绍过的多向条件分支结构:(下图为多向条件分支结构的流程图)
当流程进入某个选择分支后又引出新的选择时,就要用嵌套的if语句。对于多重嵌套if分支结构,最容易出现的就是if与else的配对错误。嵌套中的if与else的配对关系非常重要。从最内层开始,else总是与它上面相邻最近的不带else的if配对。在使用if语句的嵌套时,避免if与else配对错位的最佳办法是加大括号;同时,为了便于阅读,使用适当的缩进。
编程实践
比如,输入一个人的年龄,判断他是退休了还是在工作。然后分析一下,男士60岁退休,女士55岁退休。因此要判断一一个人是否已退休,首先判断性别,然后判断年龄,才能得出正确的结论。代码如下所示:
//用户输入的性别$sex="female"; //用户输入的年龄$age=50; //如果用户输入的是男性则执行下面的语句块if($sex=="male"){ //如果是男性并且年龄在60以上则执行下面的语句块if ($age>=60){ echo"这个男士已退休 " . ($age-60) . "年了"; }else{ //如果是男性并且年龄在60以下则执行下面的语句块echo"这个男士还在岗位奋斗中,还有 " . (60-$age) . "年才能退休"; } }else{ //如果用户输入的是女性则执行下面的区块//如果是女性并且年龄在55岁或以上则执行下面的语句块if( $age>=55){ echo"这个女士已退休 ". ($age-55) . "年了"; }else{ //如果是女性并且年龄在55以下则执行下面的语句块echo"这个女士还在岗位奋斗中,还有 " . (55-$age) . "年才能退休"; } }
执行结果:
学习分支结构不要被分支嵌套迷惑,只要正确绘制出流程图,弄清各分支所要执行的功能,嵌套结构也就不难了。嵌套只不过是分支中又包括分支语句罢了,不是新知识。一定要学会举一反三