第4章 PHP流程控制语句
◎本章教学微视频:4个 29分钟
学习指引
PHP程序总是由若干条语句组成,其中有三种流程控制语句用以实现选择结构与循环结构,分别为条件控制语句、循环控制语句和跳转语句,本章将进行具体的介绍。合理地使用这些控制结构可以使程序流程清晰、可读性强,从而提高工作效率。
重点导读
- 掌握条件控制语句的使用。
- 掌握循环控制语句的使用。
- 熟悉跳转语句的使用。
- 了解文件包含的使用。
4.1 条件控制语句
在编写程序时,有时需要根据不同的判断来执行对应的操作,这时就可以使用条件语句来完成它。条件控制语句主要有if、if...else、elseif和switch四种,下面分别进行介绍。
4.1.1 if语句
if条件语句用于仅当指定条件成立时执行代码。if条件语句的语法格式如下:
如果条件的值为真,就按顺序执行statement语句,否则就跳过该语句往下执行。
当执行的语句为多条时,使用“{}”括起来,格式如下:
if语句的流程控制图如图4-1所示。
下面举一个例子,使用rand()函数生成一个随机的数$num,然后判断$num是不是偶数,如果是偶数输出$num的值和说明文字。
【例4-1】(实例文件:ch04\Chap4.1.php)if语句实例。
在IE浏览器中运行结果如图4-2所示。
图4-1 if语句的流程控制图
图4-2 if语句运行结果
提示:rand()函数用来生成一个随机数,格式为int rand(int mix,int max),该函数返回一个mix和max之间的随机数。如果没有参数,则返回0到RAND_MAX之间的随机整数。
4.1.2 if...else语句
if...else语句用来当条件成立时执行一块代码,条件不成立时执行另一块代码。语法格式如下:
当条件成立时,执行statement1语句;当条件不成立时,执行statement2语句。
if...else语句的流程控制图如图4-3所示。
【例4-2】(实例文件:ch04\Chap4.2.php)if...else语句实例。
在IE浏览器中运行结果如图4-4所示。
图4-3 if...else语句的流程控制图
图4-4 if...else语句运行结果
4.1.3 elseif语句
if...else语句只能选择两种结果,当条件成立时执行一块代码,当条件不成立时,执行另一块代码。但当出现多个条件的时候,例如,有一个班级考试的成绩,老师划分等级:85分以上的,成绩优秀;60~85分之间的,成绩良好;低于60分的,则成绩不及格。在这种多个条件下,就需要使用elseif语句了。elseif也可以写成else if。
elseif语句的语法格式如下:
elseif语句的流程控制图如图4-5所示。
图4-5 elseif语句的流程控制图
【例4-3】(实例文件:ch04\Chap4.3.php)elseif语句实例。
在IE浏览器中运行结果如图4-6所示。
提示:elseif语句仅在之前的if语句和所有之前的elseif语句中条件成立时,并且当前的elseif语句条件成立时执行。
图4-6 elseif语句运行结果
4.1.4 switch...case多重判断语句
如果希望有选择地执行若干代码块之一,可以使用switch语句。switch语句的语法格式如下:
工作原理:switch语句首先进行一次计算,将表达式的值与结构中case的值进行比较,只有当一个case的值和switch表达式的值匹配时才开始执行语句。代码执行后,使用break来阻止代码跳入下一个case中继续执行,4.3.1节中将详细介绍break语句。default语句用于没有匹配到case时执行。
switch语句的流程控制图如图4-7所示。
图4-7 switch语句的流程控制图
【例4-4】(实例文件:ch04\Chap4.4.php)switch语句实例。
在IE浏览器中运行结果如图4-8所示。
注释:在例4-4中,首先定义一个变量$fruit,值为“橘子”,把$fruit传入switch语句中,然后进行匹配,匹配到执行相应代码,匹配不到执行default。
提示:switch语句与elseif语句都可以进行多重选择,但是在不同的情况下运行的效率是不一样的。当被判断的值是常量(固定不变的值)时,switch语句的运行效率比elseif语句的运行效率高;当被判断值为变量,elseif语句的运行效率高于switch语句。
图4-8 switch语句运行结果