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

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

时间:2023-04-07 18:31:52浏览次数:34  
标签:语句 web 15 55 .... else 嵌套 PHP 分支

嵌套条件分支结构

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

if(表达式1){

if(表达式2){

if(表达式3){

.... //可以无限的嵌套下去,但是实际开发中不太建议有太多层的if分支结构的嵌套

}else{

.... //可以无限的嵌套下去

}

}else{

if(表达式4){

.... //可以无限的嵌套下去

}else{

.... //可以无限的嵌套下去

}

}


}else{

if(表达式5){

.... //这里同样可以无限的嵌套下去

}else{

.... //这里同样可以无限的嵌套下去

}

}

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

其实,嵌套语句,类似于我们前面介绍过的多向条件分支结构:(下图为多向条件分支结构的流程图)

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

当流程进入某个选择分支后又引出新的选择时,就要用嵌套的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) . " 年才能退休";
	}
}

执行结果:

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

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

标签:语句,web,15,55,....,else,嵌套,PHP,分支
From: https://blog.51cto.com/micai01/6176480

相关文章

  • 可以替代Nginx的web服务软件
    1.Nginx(https://nginx.org/en/)2.HAProxy(https://www.haproxy.org/)3.Caddy2(https://caddyserver.com/)4.lighttpd (https://www.lighttpd.net/)5.Traefik(https://traefik.cn/)6.ApacheTomcat(https://tomcat.apache.org/)7.envoy(https://www.envoyprox......
  • hdu-1540(线段树+区间合并)
    TunnelWarfareHDU-1540思路:没被摧毁的村庄为1,否则为0,用len记录线段树维护区间的两个信息:前缀最长1的序列pre后缀最长1的序列suf父节点与左右子节点的关系://lc为左节点,rc为右节点1.若左右结点都不满1,则tr[p].pre=tr[lc].pre,tr[p].suf=tr[rc].suf2.若左节点满1,tr......
  • IDEA导入普通web项目
    公司项目是普通web项目,导入使用IDEA启动需要一定的步骤,在此做下记录在IDEA中依次点击File->New->ProjectfromExistingSources选中项目目录之后直接下一步下一步下一步。然后点击File->ProjectStructure在Project面板修改SDK版本在Modules面板中的Sources面板把res......
  • 使用Docker发布普通web项目(非springboot项目)
    公司的项目比较旧,还是普通的web格式,只能打个war包放在tomcat中运行,现在要上docker发布,在此做下记录DockerDesktop开发机是win10,想要打包镜像需要安装DockerDesktop,安装前需要在bios里面开启虚拟化支持。然后按照官方安装教程一步一步安装。Dockerfile然后在项目根目录编写doc......
  • websocket教程
    提纲1、websocket协议概述包括基本功能,提出时间,标准文档2、websocket的协议包构成3、web前端对websocket的支持方案4、java后端的websocket技术方案参考资料:1、https://www.cnblogs.com/flydean/p/15341443.html#websocketserverhandshaker,主力参考资料,通过仔细阅读这篇文......
  • 7种实现web实时消息推送的方案
    做了一个小破站,现在要实现一个站内信web消息推送的功能,对,就是下图这个小红点,一个很常用的功能。不过他还没想好用什么方式做,这里我整理了一下几种方案,并简单做了实现。什么是消息推送(push)推送的场景比较多,比如有人关注我的公众号,这时我就会收到一条推送消息,以此来吸引我点击打开应......
  • 基于FFmpeg和Wasm的Web端视频截帧方案
    作者|小萱导读基于实际业务需求,介绍了自定义Wasm截帧方案的实现原理和实现方案。解决传统的基于canvas的截帧方案所存在的问题,更高效灵活的实现截帧能力。全文10103字,预计阅读时间26分钟。01项目背景在视频编辑器里常见这样的功能,在用户上传完视频后抽取关键帧,提供给用户以便快......
  • opencv-python 4.15. 基于分水岭算法的图像分割
    理论任何灰度图像都可以看作是地形表面,其中高强度表示峰和丘陵,而低强度表示山谷。你开始用不同颜色的水(标签)填充每个孤立的山谷(局部最小值)。随着水的上升,取决于附近的峰值(梯度),来自不同山谷的水,明显具有不同的颜色将开始融合。为避免这种情况,你需要在水合并的位置建立障碍。你继续......
  • IIS 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler
    https://www.cnblogs.com/skylaugh/p/6376426.html我运行在iis中配置的那个网站后,报错:错误代码0x800700b7配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler”节 这个问题原因在于window7的IIS默认用的是ASP.NETv4.0应用程序池。解决方法:把这......
  • JSON Web Token(JWT)
    JSONWebToken(JWT)什么是JWTJSONWebToken(JWT)是一种用于身份验证和授权的开放标准(RFC7519),它定义了一种紧凑、自包含的方式,用于在网络上传输信息。JWT由三部分组成,分别是头部(Header)、载荷(Payload)和签名(Signature)。头部(Header):Header部分通常由两部分信息组成:令牌的类型(这里......