当前位置:  首页>> 技术小册>> PHP8入门与项目实战(2)

循环控制语句主要包括3种,即while循环、do…while循环和for循环。while循环在代码运行的开始检查表述的真假;而do…while循环则在代码运行的末尾检查表述的真假,即do…while循环至少要运行一遍。

1.while循环语句
while循环的结构为:

  1. while (条件判断语句){
  2. 命令执行语句;
  3. }

其中,当“条件判断语句”为true时,执行后面的“命令执行语句”,然后返回条件表达式继续进行判断,直到表达式的值为假才能跳出循环,执行后面的语句。

while循环语句的流程控制图如图4-21所示。

【例4.16】

运行后结果如图4-22所示。

本实例主要实现20以内的奇数输出。从1~20依次判断是否为奇数,如果是,则输出;如果不是,则继续下一次的循环。

2.do…while循环语句
do…while循环的结构为:

  1. do{
  2. 命令执行语句;
  3. }while(条件判断语句)

先执行do后面的“命令执行语句”,其中的变量会随着命令的执行发生变化。当此变量通过while后的“条件判断语句”判断为false时,停止执行“命令执行语句”。

do…while循环语句的流程控制图如图4-23所示。

【例4.17】

  1. <?php
  2. $aa = 0; //声明一个整数变量$aa
  3. while($aa != 0){ //使用while循环输出
  4. echo "不会被执行的内容"; //这句话不会被输出
  5. }
  6. do{ //使用do…while循环输出
  7. echo "被执行的内容"; //这句话会被输出
  8. }while($aa != 0);
  9. ?>

运行后结果如图4-24所示。从结果可以看出,while语句和do…while语句有很大的区别。

3.for循环语句

for循环的结构为:

  1. forexpr1expr2expr3
  2. {
  3. 执行命令语句
  4. }

其中expr1为条件的初始值,expr2为判断的最终值,通常都使用比较表达式或逻辑表达式充当判断的条件,执行完命令语句后,再执行expr3。

for循环语句的流程控制图如图4-25所示。

【例4.18】

  1. <?php
  2. for($i=0;$i<4;$i++){ //使用for循环输出
  3. echo "for语句的功能非常强大<br/>";
  4. }
  5. ?>

运行结果如图4-26所示,从中可以看出命令语句执行了4次。

4.foreach循环语句
foreach语句是常用的一种循环语句,经常被用来遍历数组元素。它的格式为:

  1. foreach(数组as数组元素){
  2. 对数组元素的操作命令;
  3. }

可以根据数组的情况分为两种,即不包含键值的数组和包含键值的数组。

不包含键值的:

  1. foreach(数组as数组元素值){
  2. 对数组元素的操作命令;
  3. }

包含键值的:

  1. foreach(数组as键值 => 数组元素值){
  2. 对数组元素的操作命令;
  3. }

每进行一次循环,当前数组元素的值就会被赋值给数组元素值变量,数组指针会逐一移动,直到遍历结束为止。

【例4.19】

  1. <?php
  2. $arr=array("one", "two", "three");
  3. foreach ($arr as $value) //使用foreach循环输出
  4. {
  5. echo "数组值: " . $value . "<br/>";
  6. }
  7. ?>

运行结果如图4-27所示,从中可以看出命令语句执行了3次。

5.流程控制的另一种书写格式
在一个含有多条件、多循环的语句中,包含多个“{}”,查看起来比较烦琐。流程控制语言的另一种书写方式是以“:”来代替左边的大括号,使用endif;、endwhile;、endfor;、endforeach;和endswitch;来替代右边的大括号,这种描述程序结构的可读性比较强。常见的格式如下。

条件控制语句中的if语句:

  1. if(条件判断语句):
  2. 命令执行语句;
  3. elseif(条件判断语句):
  4. 命令执行语句;
  5. elseif(条件判断语句):
  6. 命令执行语句;
  7. else:
  8. 命令执行语句;
  9. endif;

条件控制语句中的switch语句:

循环控制语句中的while循环:

  1. while(条件判断语句):
  2. 命令执行语句
  3. endwhile;

循环控制语句中的do…while循环:

  1. do
  2. 命令执行语句
  3. while(条件判断语句);

循环控制语句中的for循环:

  1. for(起始表述;为真的布尔表述;增幅表述):
  2. 命令执行语句
  3. endfor

【例4.20】

运行结果如图4-28所示。从效果图可以看出,该代码使用新的书写格式实现了杨辉三角的排列输出。

6.使用break/continue语句跳出循环

使用break关键字用来跳出(也就是终止)循环控制语句和条件控制语句中switch语句的执行,例如:

在这段程序中,while循环控制语句里面包含一个switch流程控制语句。在程序执行到break语句时,break会终止执行switch语句,或者是switch和while语句。其中,在“case 1”下的break语句跳出switch语句;“case 2”下的break 2语句跳出switch语句和包含switch的while语句;“default”下的break 1语句和“case 1”下的break语句一样,只是跳出switch语句。其中,break后带的数字参数是指break要跳出的控制语句结构的层数。

使用continue关键字的作用是跳开当前的循环迭代项,直接进入下一个循环迭代项,继续执行程序。下面通过一个实例说明此关键字的作用。

【例4.21】

运行结果如图4-29所示。

其中,continue关键字在当n等于2的时候跳出本次循环,并且直接进入下一个循环迭代项,即n等于3。另外,continue关键字和break关键字一样,都可以在后面直接跟一个数字参数,用来表示跳开循环的结构层数。“continue”和“continue 1”相同,“continue 2”表示跳开所在循环和上一级循环的当前迭代项。


该分类下的相关小册推荐: