一、什么是流程控制语句?
在实际开发过程中,常常需要选择执行某些指定的代码,或循环执行一些代码,这样就涉及到流程控制语句。流程控制语句主要包括选择结构语句和循环结构语句。
二、选择结构语句
选择结构语句用于对一些条件作出判断,从而决定执行哪一段代码
常见的选择结构语句有if、if…else、if…elseif…else和switch…case四种
1、if语句
if语句(也称为单分支语句)是指如果满足某条件,就进行某种处理。
语法格式如下:
if (判断条件){
代码块
}
例:
<?php
$num=90;
if($num>60){
echo '合格';
}
echo '<br />';
echo '程序结束';
?>
2、if…else语句
if…else语句(也称双分支语句)是指如果满足某种条件,就进行某种处理,否则就进行另一种处理。
语法格式如下:
if (判断条件){
执行语句1
……
}else{
执行语句2
……
}
例:
<?php
$num=90;
if($num>60){
echo '合格';
}else{
echo '不合格';
}
echo '<br />';
echo '程序结束';
?>
3、if…elseif…else语句
if…elseif…else语句(也称多分支语句)用于对多个条件进行判断,进行多种不同的处理。
语法格式如下:
if (判断条件1) {
执行语句1
} elseif (判断条件2) {
执行语句2
}
...
elseif (判断条件n) {
执行语句n
} else {
执行语句n+1
}
例:
<?php
header('content-type:text/html;charset=utf-8');
$num=87;
if($num>=90){
echo '优秀';
}elseif($num>=80){
echo '良好';
}elseif($num>=60){
echo '及格';
}else{
echo '不及格';
}
echo '<br />';
echo '程序结束';
?>
注意:
1、if…elseif…else语句可以包含任意多个elseif子句。
2、if…elseif…else语句中的elseif也可写成两个单词else if。else if 相当于else{if(){…}},但其达到的效果是相同的。
三、循环结构语句
循环语句可以实现将一段代码重复执行
在PHP中循环语句有while循环语句、 do…while循环语句和for循环语句三种
1、switch语句
switch条件语句也是一种很常用的选择语句, 和if条件语句不同,它只能针对某个表达式的值 作出判断,从而决定程序执行哪一段代码。
语法格式如下:
switch (表达式){
case 目标值1:
执行语句1
break;
......
case 目标值n:
执行语句n
break;
default:
执行语句n+1
break;
}
注意:
!、可以使用分号代替 case 语句后的冒号,执行效果一样。
!、在使用switch语句的过程中,如果多个case条件后面的执行语句是一样的,则该执行语句只需书写一次即可,这是一种简写的方式。
!、与其它语言不同,在PHP中,switch 语句中的break也可使用continue代替,作用基本相同。 !、在switch语句执行代码的最后,包含一条break语句是很重要的。若没有break语句,程序流程将继续直接执行下一个case中的语句段,并最终到达默认语句。在大多数情况下,这将导致一个错误的结果。
2、while循环语句
while循环语句根据条件判断来决定是否执行大括号内的执行语句。
while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,while循环结束。
语法格式如下:
while(循环条件){
执行语句
………
}
例:
<?php
$a=1;
while($a<=5){
echo '$a='.$a.'<br />';
$a++;
}
?>
3、do…while循环语句
do…while循环语句和while循环语句功能类似, 区别在于do…while循环语句的执行语句在do{} 中,这也就意味着循环体会无条件执行一次。
语法格式如下:
do {
执行语句
………
} while(循环条件);
例:
<?php
$a=1;
do{
echo '$a='.$a.'<br />';
$a++;
}while($a<=5);
?>
4、for循环语句
for循环语句是最常用的循环语句,一般用在循环次数已知的情况下
for关键字后()中包括了三个部分内容:初始化表达式、循环条件和操作表达式,它们之间用 “;”分隔,{}中的执行语句为循环体。
语法格式如下:
for(初始化表达式; 循环条件; 操作表达式){
执行语句
………
}
例:
<?php
for($i=1;$i<=5;$i++){
echo '$i='.$i.'<br />';
}
?>
注意:
for循环语句中的每个表达式都可以为空,但是必须保留之间的分号分割符。当每个表达式都为空时,表示该for循环语句的循环条件永远满足,会进入无限循环的状态,此时如果要结束无限循环,也可以在for语句循环体中进行控制
5、跳转语句
跳转语句用于实现循环执行过程中程序 流程的跳转,在PHP中的跳转语句有: break语句、continue语句和goto语句
①break语句:
在switch条件语句和循环语句中都可以使用break语句。
当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现在循环语句中,作用是跳出循环语句,执行后面的代码。
注意:
reak 可以接受一个可选的数字参数来决定跳出几重循环。刚才的案例中“break;”等同于“break 1; ”,也就是说跳出当前的1重循环,即while循环。在有多层嵌套循环中,可使用break n跳出多重循环。
例:
<?php
for($i=1;$i<=9;$i++){
for($j=1;$j<=$i;$j++){
echo $i.'*'.$j.'='.$i*$j;
if($j==7){
break 2;
}
}
echo '<br />';
}
?>
//该代码输出显示的是一个简单的九九乘法表,当$j
//的值为7时,执行“break 2”,此时跳出两层循环,因此
//代码执行完毕,后面两行将不会输出。
②continue语句
continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。
③goto语句
goto语句的作用是跳转到程序中的另一位置。在目标位置用目标名称加上冒号来标记,跳转指令是goto之后加上目标位置的标记。
注意:
1、goto语句仅在PHP 5.3及以上版本有效。
2、PHP中的goto语句只能在同一个文件或作用域中跳转,也就是说无法跳出一个函数或类方法,也无法跳入另一个函数。