一、概述:

上面一章我们讲解了PHP当中的运算符和表达式,通过上面的知识点我们就可以完成一些基本的运算操作了。但是涉及到一些比较复杂的逻辑,分支与循环就必不可少了。通过分支和循环的结合使用可以使业务更加复杂,代码功能更加强大。

二、 常见的分支结构 if语句

1 单个 if 语句

基本格式:

if(条件表达式){

语句组;

//语句组为单条语句时可省略“{ }”。

}

当条件表达式的值为真(true)时,PHP将执行语句组,相反条件表达式的值为假(false)时,PHP将不执行语句组,忽略语句组执行下面的语句,可以参照下图

2 双向条件分支语句

格式如下

if(条件表达式){

语句组1

}else{

语句组2

}

if-else 条件判断与 if 条件判断类似,所不同的是,if-else 语句的条件表达式值为真(true)时,会执行 if 的本体语句(语句组1),而条件表达式值为假(false)时,则执行 else 的本体语句(语句组2)。

3 多向条件分支语句

格式如下

if(条件表达式1){

语句块1

}elseif(条件表达式1){

语句块2

}elseif(条件表达式n){

语句块n

}else{

语句块n+1

}

同上类似,只是在if后面添加多个 elseif选项,这样整条语句可以过滤更多的条件。

三、 常见的分支结构 switch语句

switch- case语句语法:

switch(表达式){

case  值1:

语句序列1;      break;

case  值2:

语句序列2;      break;

default:

语句序列 n;      break;

}

当程序执行碰到switch条件判断时,它会取出键值,并与case的各个情况对比。当遇到匹配的条件时,会执行case里面语句,直到遇到break语句为止。

需要注意的是 switch语句与if语句不同,它仅能判断恒等的关系,switch语句中case子句的常量可以是整型常量、字符型常量、表达式或变量,不可以是其他类型。

在同一个switch中,case子句的常量不能相同,否则第二个值永远无法匹配到。

四、 常见的循环语句

1 while语句

while循环语法:

while(表达式){

语句或语句序列

}

当while循环语句中表达式真时,程序将一直会执行循环体里面的内容,直到满足条件是假的时候才停止执行该段程序。如果条件一直是真,则该循环会一直循环下去,这就是死循环。所以我们在使用循环的时候,需要注意以下两个原则。

2 do while语句

基本格式:

do{

语句或语句序列

}while(表达式);

程序会先执行 do 语句体中的语句(循环体),然后再检查表达式(循环控制语句)的值,如果符合条件式(值为真),就再进行 do 语句体中的语句,直到条件不符合停止。

3 for循环

基本格式:

for(表达式1;表达式2;表达式3)

{

语句或语句序列;

}

for循环语句中表达式1为循环初始条件;表达式2为循环控制条件;表达式3为控制变量递增;语句或语句序列为循环体。

4 特殊控制语句

1. break

我们之前在 switch 条件判断中已经使用过 break 关键字,它会使得程序终止当前作用域 switch 本体中的语句,如果 break 使用在 for、while 或 do-while 循环结构中时,程序将会跳出循环

2. continue

continue 的作用与 break 有点类似,continue 若使用在 for、while 或 do-while循环结构中,当程序执行至 continue 时,之后的语句将直接被略过,而直接执行下一次循环

3. exit

当前的脚本中只要执行到exit语句,而不管它在哪个结构中都会直接退出当前脚本。

通过本章内容,我们可以清楚的了解分支和循环的使用,可以更好的控制流程来处理复杂的业务,大家可以能会感觉代码比较多,比较乱。下节将和大家一起学习下函数的使用,了解下如何编写更加简洁高效的代码。

PHP 分支与循环的更多相关文章

  1. 【.net 深呼吸】细说CodeDom(8):分支与循环

    有人会问,为啥 CodeDom 不会生成 switch 语句,为啥没生成 while 语句之类.要注意,CodeDom只关心代码逻辑,而不是语法,语法是给写代码的人用的.如果用.net的“反编译”工具 ...

  2. SQL变量、运算符、分支、循环语句

    变量: SQL语言也跟其他编程语言一样,拥有变量.分支.循环等控制语句. 在SQL语言里面把变量分为局部变量和全局变量,全局变量又称系统变量. 局部变量: 使用declare关键字给变量声明,语法非常 ...

  3. SQL连接查询、变量、运算符、分支、循环语句

    连接查询:通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 常用的两个链接运算符: 1.join   on 2.union 在关系数据库 ...

  4. java里的分支语句--程序运行流程的分类(顺序结构,分支结构,循环结构)

    JAVA里面的程序运行流程分三大类: 1,顺序结构:顺序结构就是依次执行每一行代码 2,分支结构:分支结构就是按不同的条件进行分支 3,循环结构:一段代码依条件进行循环执行. 其中,分支结构有两大类: ...

  5. MSIL 教程(二):数组、分支、循环、使用不安全代码和如何调用Win32 API(转)

    转自:http://www.cnblogs.com/Yahong111/archive/2007/08/16/857574.html 续上文[翻译]MSIL 教程(一) ,本文继续讲解数组.分支.循环 ...

  6. 了不起的分支和循环03 - 零基础入门学习Python009

    了不起的分支和循环03 让编程改变世界 Change the world by program while循环 说完了分支我们来说说循环,标准的while循环语法我们已经可以熟悉掌握了. 这里我们就简 ...

  7. 了不起的分支和循环02 - 零基础入门学习Python008

    了不起的分支和循环02 让编程改变世界 Change the world by program 上节课,小甲鱼教大家如何正确的打飞机,其要点就是:判断和循环,判断就是该是不该做某事,循环就是持续做某事 ...

  8. 了不起的分支和循环01 - 零基础入门学习Python007

    了不起的分支和循环01 让编程改变世界 Change the world by program 我们今天的主题是"了不起的分支和循环",为什么小甲鱼不说C语言,不说Python了不 ...

  9. R学习笔记 第四篇:函数,分支和循环

    变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...

随机推荐

  1. 微信企业号接收消息(使用SpringMVC)

    微信企业号接收消息(使用SpringMVC) 微信企业号接收消息(使用SpringMVC) 将应用设置在回调模式时,企业可以通过回调URL接收员工回复的消息,以及员工关注.点击菜单.上报地理位置等事件 ...

  2. 通过spring 中的@Scheduled来执行定时任务

    以前开发定时任务的功能的时候,是框架里面写好的quartz配置方式,由于功力尚浅,感觉定时跑披定时任务什么的云里雾里,很高大上,每次都不知道怎么修改配置,后来几次接触定时任务发现,还是比较好掌握的,特 ...

  3. onchange、onclick、onblur等事件区别

    onblur:控件在失去焦点的时候触发 OnChange:当控件的内容发生改变时触发该事件 OnClick:点击该控件时触发 OnKeyDown:在控件有焦点的情况下,按下键时发生 OnKeyUp:在 ...

  4. 计算机程序的思维逻辑 (75) - 并发容器 - 基于SkipList的Map和Set

    上节我们介绍了ConcurrentHashMap,ConcurrentHashMap不能排序,容器类中可以排序的Map和Set是TreeMap和TreeSet,但它们不是线程安全的.Java并发包中与 ...

  5. rpm包相关操作

    1.查找已安装的rpm:rpm -qa|grep ewp2.卸载已安装的rpm: 先切换到虚拟机共享路径,执行卸载命令: rpm -e 已安装rpm包名称3.安装新rpm包:rpm -ivh(更新的话 ...

  6. css gray,grayscale,css变灰兼容大部分浏览器

    css gray,grayscale,css变灰兼容大部分浏览器 html { filter: url("data:image/svg+xml;utf8,<svg xmlns=\'ht ...

  7. 用webstorm自动编译less产出css和sourcemap

    css产出sourcemap有什么用呢,可能大家要问这个问题了. 请移步这里 https://developers.google.com/chrome-developer-tools/docs/css ...

  8. Jmeter-线程组

    1.Sampler 取样器(Sampler)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler , 如 HTTP Request Sam ...

  9. WPF之路五:wpf 隐藏与显示 Visibility

    WPF里枚举变量Visibility 有三个值:Visible, Collapsed和Hidden.其中Collapsed是WPF新引进的,其作用是不仅隐去Control,同时也会移除Control所 ...

  10. 用 config drive 配置网络 - 每天5分钟玩转 OpenStack(173)

    上一节最后问了大家一个问题:如果 subnet 没有开 DHCP,会是怎样一个情况? 在其他条件不变的情况下,cloud-init 依然会完成那 3 个步骤,也就是说网卡还是会被配置成 dhcp 模式 ...