PHP流程控制语句例题,第四堂、php流程控制语句
php流程控制语句
条件控制语句和循环控制语句是两种基本的语法结构。它们都是用来控制程序执行流程的,也是构成程序的主要语法基础。
程序的3种控制结构
条件控制语句
循环控制语句
跳转语句
包含语句
1.程序设计的结构大致分为顺序结构,选择(分支)结构和循环结构3种。
循环结构可以按照需要多次重复执行一行或者多行代码,循环结构分为前测试型循环和后测试型循环两种。
前测试型循环,先判断后执行,
后测试型循环,先执行后判断。
条件控制语句:if ,slse,elseif和switch
循环控制语句:while,do...while,for和foreach
跳转控制语句:break,continue和retun
2.条件控制语句
所谓的条件控制语句就是对语句中不同条件的值进行判断,进而根据不同条件执行不同的语句,在条件控制语句中主要有两个语句:if条件控制语句和switch多分支语句。
1. if条件控制语句是所有流程控制语句中最简单,最常用的一个,根据获取的不同条件判断执行不同的语句
if(expr)
statement; //基本的表达式
if(){}//执行多条件语句的表达式
if(){}else{}//通过else延伸了表达式
if(){}elseif(){}else{} //这是加入了elseif同时判断多个条件的表达式
//参数expr按照布尔求值,如果为true将执行statement,如果为FALSE,则忽略statement,if语句可以无限层地嵌套到其他if语句中去,实现更多条件的执行。
2. switch多分支语句:switch语句和if条件控制语句类似,实现将同一个表达式与很多不同的值比较,获取相同的值,并且执行相同的值对应的语句。
switch(expr){ //表达式的值,即switch语句的条件变量的名称
case expr1; //放在case语句之后,是要与条件变量expr进行匹配的值中的一个
statement1; //条件匹配时,执行的代码
break; //终止语句的执行,即当语句在执行过程中,遇到break主停止执行,跳出循环体
case exp2;
statement2;
break;
default;//case的一个特例,其他任何case都不匹配的情况,并且是最后一条case语句
statementN;
break;
}
3、循环语句
循环语句,是在满足条件的情况下反复执行某一个操作,在php中,提供4个循环控制语句,分别是while循环语句,do..while,for,foreach循环
1.while循环语句,其作用是反复地执行某一项操作,是循环控制语句中最简单的一个,也是最常用的一个,while循环语句对表达式的值进行判断,当表达式为非0时,执行while语句中的内嵌语句,当表达式的值为0时,则不执行while语句中的内嵌语句。该语句的特点是:先判断表达式,后执行语句。
例:while(expr){
statement;
} //只要while表达式的expr的值为TRUE,就重复执行嵌套中的statement语句,如果while表达式的值一开就是FALSE,则循环语句一次也不执行。
while循环语句:
$a=1;
$b=10;
while ($a<=$b){
$p=40*12*$a;
echo "aaaa:".$a."bbbbb:".$p."
";
$a++;
}
2、do..while循环语句的使用方式和while相似,也是通过判断表达式的值来输出循环语句。该语句的操作流程是:先执行一次指定的循环语句,然后判断表达式的值,当表达式的值为非0时,返回重新执行循环体语句,如此反复。直到表达式的值等于0为止。特点是,先执行循环体,然后判断循环条件是否成立。
例:
do{
statement;//程序在未经判断之前就先进行一次循环,循环到while部分才判断条件,即使条件不满足,程序也已经运行了一次。
}while(expr);
while和do..while语句之间的区别:do..while语句先执行后判断,无论表达式的值是否为TRUE,都将执行一次循环,而while语句则是首先判断表达式的值是否为TRUE,如果为TRUE则执行循环语句,否则将不执行循环语句。
3、for循环语句,是php中最复杂的循环控制语句,拥有3个条件表达式,语法如下:
for(expr1;expr2;expr3){
statement
}
expr1 必要参数,第一个条件表达式,在第一次循环开始时被执行
expr2 必要参数,第二个条件表达式,在每次循环开始时被执行,决定循环是否继续
expr3 必要参数,第三个条件表达式,在每次循环结束时被执行,
statenebt 必要参数,满足条件后,循环执行的语句
其执行过程:首先执行表达式1,然后执行表达式2,并对表达式2的值进行判断,如果值为真,则执行for循环语句中指定的内嵌语句,如果值为假,则结束循环,跳出for循环语句,最后执行表达式3(切忌是在表达式2的值为真时),返回表达式2继续循环执行,
4、foreach循环语句
foreach循环控制语句自php4开始被引入,主要用于处理数组,是遍历数组的一种简单方法,如果将该语句用于处理其他的数据类型或者初始化的变量,将会产生错误。该语句的语法有两种格式:
foreach(array_expression as $key=>value){
statement
}
或
foreach(array_expression as $value){
statement
}
//array_expression是指定要遍历的数组,其中$key是数组的键名,$value是数组的值,statement是满足条件时要循环执行的语句。
4、跳转语句
跳转语句主要分为break语句,continue语句和return语句3部分,其中前两个跳转语句使用起来非常简单,而且非常容易掌握,主要原因是它们都被应用在指定的环境中,如for循环语句中。return语句在应用环境上较前两者相对单一,一般被使用在自定义函数和面向对象的类中。
break关键字可以终止当前的循环,包括while,do..while,for,foreach和switch在内的所有控制语句,break语句不仅可以跳出当前的循环,还可以指定跳出几重循环,格式如:break n; 参数n指定要跳出的循环数量。
continue跳转语句,在程序执行break后,程序将跳出循环,而开始继续执行循环体的后续语句,continue跳转语句的作用没有break那么强大,只能终止本次循环,而进入到下一次循环中。在执行contiue语句后,程序将结束本次循环的执行,并开始下一轮循环的执行操作。continue也可以指定跳出几重循环。
break和continue语句都是实现跳转的功能,但还有区别,continue语句只是结束本次循环,并不是终止整个循环的执行,而break语句则是结束整个循环过程,不在判断执行循环的条件是否成立。
5、包含语句
引用外部文件可以减少代码的重用性,
使用include()语句包含外部文件时,只有代码执行到该语句时才将外部文件包含进来,当所包含的外部文件发生错误时,系统只给出一个警告,而整个php文件则继续向下执行。语法: include(filename); filename是指定的完整路径文件名。
require()语句与include()语句类似,都是实现对外部文件的调用,语法require(filename); 当使用require()语句载入文件时,它会作为php文件的一部分被执行,例如,通过require()载入一个网而文件,那么文件内的任何php命令都会被处理,但是,如果将php脚本单纯放到html网页中,它是不会被处理的。
include_once()语句,include_once()与include()函数的区别,应用include_once()函数多次调用相同的文件,程序只会调用一次。他和include函数基本一样,唯一区别是,就是include_once函数会在导入文件前先检测该文件是否在该页面的其他部分被导入过,如果有的话就不会重复导入该文件,这个区另很重要。如果在导入一些自定义函数,如果重复导入会有问题。
require_once()语句,是require的延伸,与他的功能类似。同include_once()语句的意义一样。如果require_once语句在同一页面中调用了两个相同的文件,那么在输出时只有第一个文件被输出,第一次调用的文件不会被输出。
include()和require()语句的区别:
require()语句调用文件时,如果没找到文件,会输出错误信息,并且立即终止脚本处理,而include()没找到则会发出警告,不会终止脚本的处理。
require()语句调用文件时,只要程序一执行,会立刻调用外部文件,而通过include()语句调用外部文件时,只有程序执行到该语句时,才会调用外部文件。
require_once()和include()语句的区别:他们的用途是确保一个被包含文件只能被包含一次,可以防止意外地多次包含相同的函数库而导致函数的重复定义并且产生错误的情况,但两都区别和require()与include()之间的一样。
复习:
1.顺序结构,
2.选择(分支)结构
3.循环结构
4.条件控制语句 学2种
5.循环控制语句 学4种
6.跳转语句 学3种
7.包含语句,2种,应该是4种,及他们的区别
相关文章:

Web用户控件的一个毛病
前几天发现的,今天好好审查的 的确是.net 2.0的问题,也不知道是微软.net小组特意的,就是我在自定义的web 用户控件中,自定义的一些字段后,在页面中的对它的字段赋值,但是在web用户自定义控件中,…
【计算机视觉】EmguCV学习笔记(2)图像的载入、显示和输出
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

如何创建企业转型路线图
企业是一个连结点。他们正在快速发展的全球“技术社会”中竞争,独立于政治和国家边界,并以低成本获得先进的移动数字技术为动力。35岁以下的大多数是移动设备和应用程序的强大用户——他们依靠它们进行娱乐,享受生活服务,开展商业…

matlab 职坐标,机器学习入门之机器学习实战ByMatlab(四)二分K-means算法
本文主要向大家介绍了机器学习入门之机器学习实战ByMatlab(四)二分K-means算法,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。前面我们在是实现K-means算法的时候,提到了它本身存在的缺陷:1.可能收敛到局部最小…

开始整SWF文字高亮显示——第一步:解析PDFToFlex源文件(修改补充版)
为了深入实现PDF转成SWF后的关键字高亮显示的问题,我需要解析PDFToFlex源文件,已经看到Flex 的新类:flash.net.URLStream 和 flash.utils.endian,我会全面学习我遇到的新类的。本来当天晚上就准备把分析的成果与大家分享的&#…
【计算机视觉】EmguCV学习笔记(3)ROI区域图像叠加以及初级图像混合
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

优先发展智慧旅游与智慧交通领域
三亚借助互联网技术,经过两个五年的规划建设,智慧城市建设成效初显。今天,三亚通过市长专题办公会议讨论明确,下一步,三亚智慧城市建设将向智慧旅游、智慧交通等领域寻找突破口,将三亚建设成为更高效率的便…

php redis管理系统,php+redis实现小型的用户管理系统
1、redis.php ,用于连接redis数据库//实例化$redis new Redis();//连接服务器$redis->connect("localhost");//授权$redis->auth("lamplijie");2、add.php,用于添加用户用户名:密码:年龄:3…

在虚拟机中 windows 2003 装.net framework 3.5 出现问题.
错误信息: [11/27/09,08:52:50] Microsoft .NET Framework 2.0a: [2] Error: Installation failed for component Microsoft .NET Framework 2.0a. MSI returned error code 1603[11/27/09,08:53:01] WapUI: [2] DepCheck indicates Microsoft .NET Framework 2.0a is not inst…

python——赋值与深浅拷贝
结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~预备知识一——python的变量及其存储在详细的了解python中赋值、copy和deepcopy之前,我们还是要花一点时间来了解一下python内存中变量的存储情况。在高级语言中,变量是对内存及其地址的抽…
【计算机视觉】EmguCV学习笔记(4)分离颜色通道以及多通道图像混合
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

oracle的存储过程调试,oracle 运行普通方式及调试debug方式存储过程性能区别
调试某一存储过程时,在plsql developer debug调试执行时,20多分钟都执行不完,后分析如下:1,查询调试会话运行存储过程的对应sqlselect sid,serial#,event,status,sql_id,prev_sql_id,action,module from v$session where suser12…

关于一个无限分类的多选,单选相关的控件
最近在一个项目中需要用到无限分类的平铺多选,单选这些功能,查了一些资料,结果大都是一些用IFrame这样的东西做的,虽然用起来直观,但本人更喜欢集成控件形式的,于是抽了一些时间做了一个.思路是利用控件JS不同的无限分类表,支持一页多控件,支持不同的无限分类表.效果图如下: 当…

ubuntu如何修改字符集编码
系统支持编码的修改如下:1. 使用如下命令查看系统支持的字符集cat /usr/share/i18n/SUPPORTED说明:查看系统支持的字符集,你需要注意的是支持字符集的格式,如对中文会有以下一些显示(我的系统如此,我不知是…
【怎样写代码】小技巧 -- 关于引用类型的两种转换方式
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

Oracle中的iot_type,oracle IOT表学习
IOT: Index-Organized Table索引组织表含义即将表结构整体放入索引中,且是按照主键进行排序的。创建:create table emp_iot(emp_no int,emp_name varchar2(100),dept_no int,salary number(10,2),constraint pk_empi primary key(emp_no, emp_name, dept…
如何查询并解决80端口 (转)
转自:http://www.cnblogs.com/chaofan/archive/2009/12/02/1615691.html 今天在使用apache的时候80端口被占用了,解决办法如下 在命令行里输入netstat -aon|findstr "80" 查看使用了80端口的tcp pid pid为1564 在任务管理器中将该进程结束掉即…

深证信息等三方拟联合开展大数据研究
昨日,深圳证券信息有限公司(下称“深证信息”)、泛欧交易所、北京新浪互联信息服务有限公司(下称“新浪网”)联合签署了合作备忘录,三方将基于各自优势在互联网大数据应用研究、股票指数开发、跨境指数产品…
【怎样写代码】小技巧 -- 关于方法中修饰形参的关键词
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

oracle schedule stop,Oracle调度Schedule特性(第八部分)-Windows和Window Groups
哈哈,关于schedule的内容还没完,本章讲Windows,通常说的Windows是指盖首富的操作系统,而此处所说的Windows,是指SCHEDULER特性中的一个子项。在SCHEDULER中,WINDOW对应的是一个时间窗口的概念。我们知道普通…
CSS入门-五个简单,但有用的CSS属性
今天说的这5个CSS属性,你可能会很熟悉,但是你可能会很少会去使用.这个教程所讲得不是关于CSS3的属性,而是依旧使用CSS2属性来说明,这些属性广泛的被各种浏览器所支持:clip,min-height,white-space,cursor和display.所以不要错过这个教程,因为你会发现他们是多么的有用.1.CSS Cl…

借助线下渠道逆袭?小米的愿望恐成镜花水月!
小米5的发布,让久未有波澜的中国手机市场又泛起几点涟漪。 而在小米5发布的同时,小米销售方式的改变,也让人眼前一亮。小米,已经由最初的“反传统”,开始向“传统”靠拢了。 小米5发布会上,小米告诉大家&am…
【怎样写代码】函数式编程 -- Lambda表达式(一):引出
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

oracle创建DBA角色命令,oracle常用DBA命令
1.查看用户拥有的数据库对象Sql代码select object_name from user_objects;2.查看约束信息Sql代码select constraint_name from user_constraints;3.查看用户所拥有的表Sql代码select table_name from user_tables;或Sql代码select *from tab;4.查看用户所拥有的视图Sql代码sel…

Ext JS Designer 1.0.5 发布
ExtJS官方Blog上发布了Ext JS Designer新版本,版本号为1.0.5,这个版本添加了不少新特性,如直接修改title,config参数搜索等等。虽然这个版本仍然不支持代码生成,不过另一则文章则让人感觉代码生成的日子也不远了。 此版…
【怎样写代码】函数式编程 -- Lambda表达式(二):C#常用委托
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

前端设计(一)
前端设计(一)

oracle time格式化比较,ORACLE DATE和TIMESTAMP数据类型的比较(二) (转)
ORACLE DATE和TIMESTAMP数据类型的比较(二) (转)[more]原著作者:James KmannTIMESTAMP数据的格式化显示和DATE 数据一样。注意,to_char支持date和timestamp,但是trunc却不支持TIMESTAMP数据类型。这已经清楚表明了在当两个时间的差别极度重要…

模式实例之——外观实例
场景:银行柜员机取钱或存钱描述:从银行的柜员机取了100块钱(一)子系统/// <summary>/// 子系统抽象/// </summary>public interface IDo{void ShowMessage(string strMemo);}(二)各个子系统///…

cnpm install -g generator-gulp-webapp yo gulp-webapp test-gulp-webapp
2019独角兽企业重金招聘Python工程师标准>>> cnpm install -g generator-gulp-webapp yo gulp-webapp test-gulp-webapp 转载于:https://my.oschina.net/yizhichao/blog/1189216