文章教程

5.4循环控制结构

9/17/2020 9:40:31 PM 人评论 次浏览

5.4 循环控制结构

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

5.4.1 while循环语句

while循环的结构为:

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

其中当“条件判断语句”为true时,执行后面的“命令执行语句”。

5.4.2 do…while循环语句

do…while循环的结构为:

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

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

5.4.3 for循环语句

for循环的结构为:

  for(expr1;expr2;expr3)
  {
  命令执行语句;
   }

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

【例5.5】(实例文件:ch05\5.5.php)

  <HTML>
  <HEAD><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /></HEAD>
  <BODY>
      <?php
      for($i=0;$i<4;$i++){
           echo "for 语句的功能非常强大<br>";
      }
      ?>
  </BODY>
  </HTML>

运行结果如图5-5所示。从效果图可以看出,语句执行了4次。

image

图5-5 程序运行结果

5.4.4 foreach循环语句

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

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

更为详细的可以根据数组的情况分为两种。不包含键值的数组和包含键值的数组。格式如下:

不包含键值的:

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

包含键值的:

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

5.4.5 流程控制的另一种书写格式

流程控制语句的另外一种书写方式是以“:”描述程序结构。它的可读性比较强。

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

  if(条件判断语句):
       命令执行语句;
  elseif(条件判断语句):
      命令执行语句;
  elseif(条件判断语句):
      命令执行语句;
  …
  else:
       命令执行语句;
  endif;

条件控制语句switch语句:

  switch(条件判断语句):
       case  可能结果a:
  	     命令执行语句;
  	case  可能结果b:
  	     命令执行语句;
      …
  	default:
  	     命令执行语句;
  endswitch;

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

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

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

  do
     命令执行语句;
  while(条件判断语句);

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

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

5.4.6 使用break/continue语句跳出循环

使用break关键字终止循环控制语句和条件控制语句中的switch控制语句的执行。例如:

  <?php
  $n = 0;
  while (++$n) {
      switch ($n) {
      case 1:
          echo "case one";
          break ;
      case 2:
          echo "case two";
          break 2;
      default:
          echo "case three";
          break 1;
      }
  }
  ?>

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

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

【例5.6】(实例文件:ch05\5.6.php)

  <HTML>
  <HEAD><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /></HEAD>
  <BODY>
    <?php
    $n = 0;
    while ($n++ < 6) {
       if ($n == 2){
           continue;
       }
        echo $n."<br />";
    }
    ?>
    <?php
  </BODY>
  </HTML>

运行结果如图5-6所示。

image

图5-6 程序运行结果

【案例分析】

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

教程类别