PHP 中的 break 语句

在 php 语言中,breakcontinue 被统称为“循环控制语句”。无论使用哪种类型的循环(如 forwhiledo-while),它们的执行次数都取决于设定的条件判断。而在循环体内使用 break 语句会立刻终止当前循环,并跳过所有未完成的后续迭代。

通常情况下,break 会被用在条件判断结构中,否则可能导致循环尚未开始就提前结束。

break 语句的语法格式

其基本语法如下:

while (表达式) {
   if (条件) {
      break;
   }
}
登录后复制

break 语句的流程图示意图

以下流程图展示了 break 的执行逻辑:

PHP 中的 break 语句

立即学习PHP免费学习笔记(深入)”;

整个流程从判断循环条件开始。如果条件不成立,则直接退出循环;若条件为真,则进入循环体执行代码。如果循环体中存在 break 语句,那么循环将立即被中断;否则继续执行下一次迭代。这种方式常用于在满足特定条件时提前跳出循环。

在 while 循环中使用 break

下面是一个简单的例子,演示了在 while 循环中使用 break。原本应运行十次的循环,在计数器达到 3 后便被强制结束。

<?php $i = 1;

while ($i <= 10) {
   echo "Iteration No. $i /n";
   if ($i >= 3) {
      break;
   }
   $i++;
}
?>
登录后复制

输出结果:

Iteration No. 1
Iteration No. 2
Iteration No. 3
登录后复制

此外,break 后面可以带一个整数参数,用于指定跳出多层嵌套循环的层数。该功能在处理嵌套结构时非常有用,默认值为 1,表示仅跳出当前所在的最内层循环。

在嵌套循环中使用 break

下面的例子包含三层嵌套结构:外层是 for 循环,里面嵌套着 while 循环,而 while 内部还有一个 do-while 循环。

当最内层循环遇到 break 2 时,程序将跳出两层结构,直接回到最外层的 for 循环,而不是仅仅退出当前的 while 层。

<?php for ($x = 1; $x <= 3; $x++) {
   $y = 1;
   while ($y <= 3) {
      $z = 1;
      do {
         echo "x:$x y:$y z:$z /n";
         if ($z == 2) {
            break 2;
         }
         $z++;
      } while ($z <= 3);
      $z = 1;
      $y++;
   }
}
??>
登录后复制

输出结果:

x:1 y:1 z:1
x:1 y:1 z:2
x:2 y:1 z:1
x:2 y:1 z:2
x:3 y:1 z:1
x:3 y:1 z:2
登录后复制

可以看到,每次当变量 z 等于 2 时,程序都会跳出当前的 y 循环,因此 y 始终保持为 1。

在 for 循环中使用 break

在这个例子中,循环从 1 到 10 执行,但一旦 $i 等于 5,就会触发 break 并终止循环。

<?php for ($i = 1; $i <= 10; $i++) {
   echo "Iteration No. $i /n";
   if ($i == 5) {
      break;
   }
}
??>
登录后复制

输出结果:

Iteration No. 1  
Iteration No. 2  
Iteration No. 3  
Iteration No. 4  
Iteration No. 5 
登录后复制

在 do-while 循环中使用 break

下面的例子演示了如何在 do-while 循环中使用 break。由于这种循环是先执行后判断,所以无论条件如何,至少会执行一次。当 $num 等于 3 时,break 将导致循环提前结束。

<?php $num = 1;

do {
   echo "Value: $num /n";
   if ($num == 3) {
      break;
   }
   $num++;
} while ($num <= 5);
??>
登录后复制

输出结果:

Value: 1  
Value: 2  
Value: 3  
登录后复制

以上就是PHP 中的 break 语句的详细内容,更多请关注php中文网其它相关文章!

https://www.php.cn/faq/1386904.html

发表回复

Your email address will not be published. Required fields are marked *