【web 开发基础】PHP 的流程控制之嵌套(巢状)条件分支结构 -PHP 快速入门 (15)

简介: 嵌套条件分支结构,也称为巢状条件分支结构。其实就是将if语句进行嵌套,即是在if或者else后面的语句块中又包含if语句。if语句可以无限层第嵌套在其他if语句中,这给程序的不同部分的条件执行提供了充分的弹性,是程序设计中经常使用的技术。

嵌套条件分支结构

嵌套条件分支结构,也称为巢状条件分支结构。其实就是将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岁退休。因此要判断一一个人是否已退休,首先判断性别,然后判断年龄,才能得出正确的结论。代码如下所示:

<?php//用户输入的性别$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) . "年才能退休";
  }
}

执行结果:

学习分支结构不要被分支嵌套迷惑,只要正确绘制出流程图,弄清各分支所要执行的功能,嵌套结构也就不难了。嵌套只不过是分支中又包括分支语句罢了,不是新知识。一定要学会举一反三

目录
相关文章
|
18天前
|
自然语言处理 前端开发 JavaScript
php结构
php结构
21 1
|
3月前
|
设计模式 算法 数据库连接
PHP中的设计模式:如何优化你的代码结构
在本文中,我们将深入探讨PHP中的设计模式。设计模式是解决常见软件设计问题的最佳实践。它们不是具体的代码,而是一种编程经验的总结。掌握设计模式可以帮助你写出更高效、灵活和可维护的代码。本文将介绍几种常见的设计模式,并通过示例展示如何在PHP项目中应用这些模式。无论你是PHP初学者还是有经验的开发者,都能从本文中获得启发和实用的技巧。
|
3月前
|
前端开发
【前端web入门第五天】01 结构伪类选择器与伪元素选择器
本文介绍了CSS中的结构伪类选择器和伪元素选择器。结构伪类选择器如`nth-child`可根据元素结构关系进行选择,例如将列表中首个`&lt;li&gt;`元素背景设为绿色。伪元素选择器用于创建装饰性内容。
|
6月前
|
JavaScript 程序员 应用服务中间件
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(2)
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(2)
60 7
|
6月前
|
XML 存储 JavaScript
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(1)
快速入门Web开发(上) 黑马程序员JavaWeb开发教程(1)
69 5
|
6月前
|
Java Maven 容器
快速入门Web开发(下)(2)
快速入门Web开发(下)(2)
27 2
|
6月前
|
SQL XML Java
快速入门Web开发(中)后端开发(有重点)(3)
快速入门Web开发(中)后端开发(有重点)(3)
36 1
|
6月前
|
前端开发 JavaScript Java
快速入门Web开发(中)后端开发(有重点)(2)
快速入门Web开发(中)后端开发(有重点)(2)
31 0
快速入门Web开发(中)后端开发(有重点)(2)
|
6月前
|
SQL JSON 前端开发
快速入门Web开发(下)(1)
快速入门Web开发(下)(1)
31 0
|
6月前
|
前端开发 JavaScript Java
快速入门Web开发(中)后端开发(有重点)(1)
快速入门Web开发(中)后端开发(有重点)(1)
48 0