PHP 循环中的 break 和 continue 关键词的作用和区别

先说结论:

  • break彻底终止整个循环,直接跳到循环外面且后面的语句继续执行。
  • continue跳过当前循环的剩余代码,立刻开始下一次循环。

也就是 break 后,不会再执行任何循环代码了!而 continue 只是中止当前这次循环,仍然继续循环(直接开始下一次循环)!

1. break 语句

break 用于立即退出当前所在的 forforeachwhiledo-while 或者 switch 结构。

作用: 当满足某个条件时,完全终止循环,不再执行循环中任何后续的迭代。

示例:在数组中查找一个数字,找到后立即停止循环

$numbers = [10, 20, 30, 40, 50];
$searchFor = 30;
$found = false;

foreach ($numbers as $number) {
    echo "正在检查: $number\n"; // 这会打印 10, 20, 30
    if ($number == $searchFor) {
        $found = true;
        echo "找到了!\n";
        break; // 找到后立即跳出整个 foreach 循环
    }
}

if ($found) {
    echo "数字 $searchFor 在数组中。";
} else {
    echo "数字 $searchFor 不在数组中。";
}

输出:

正在检查: 10
正在检查: 20
正在检查: 30
找到了!
数字 30 在数组中。

可以看到,一旦找到数字 30,break 语句执行,循环立刻结束,后面的 40 和 50 都不会再被检查。

break 的可选参数:

从 PHP 5.4 开始,break 可以接受一个可选的数字参数,表示要跳出多少层循环。默认是 1(只跳出当前一层循环)。

// 跳出多层嵌套循环的例子
for ($i = 0; $i < 5; $i++) {
    for ($j = 0; $j < 5; $j++) {
        if ($j == 3) {
            break 2; // 直接跳出 2 层循环(即跳出 $i 和 $j 两个循环)
        }
        echo "i = $i, j = $j\n";
    }
}
// 当 $j 等于 3 时,整个循环结构都会终止。

2. continue 语句

continue 用于跳过当前循环体中剩余的语句,并立即进行下一次循环的条件判断(如果是 for 循环,则会先执行迭代表达式,如 $i++)。

作用: 当满足某个条件时,不想执行本次循环剩下的代码,而是直接进入下一轮循环。

示例:打印 1 到 10 之间的所有奇数

for ($i = 1; $i <= 10; $i++) {
    if ($i % 2 == 0) { // 如果 $i 是偶数
        continue; // 跳过本次循环中后面的 echo 语句,直接开始 $i++ 和下一次循环
    }
    echo $i . " "; // 只有奇数才会执行到这里
}

输出:

1 3 5 7 9

当 $i 是偶数时,continue 被执行,echo 语句被跳过,循环直接进入 $i++ 并开始判断 $i <= 10,准备下一次迭代。

continue 的可选参数:

和 break 类似,continue 也可以接受一个数字参数,表示要跳过多少层循环的剩余部分。默认是 1(只跳过当前一层循环的本次迭代)。

// continue 在多层循环中的例子
$i = 0;
while ($i++ < 5) {
    echo "外层循环: $i\n";
    while (true) {
        echo "  内层循环\n";
        continue 2; // 跳过 2 层循环的剩余部分,直接开始外层循环的下一次迭代
        echo "这行永远不会被执行。";
    }
    echo "这行也不会被执行。";
}

在这个例子中,continue 2 会直接结束当前内层循环的本次迭代和外层循环的本次迭代,直接开始外层循环的下一次($i++)。


总结与对比

特性 break continue
核心作用 终止整个循环 跳过本次循环的剩余代码
循环流程 立即退出,执行循环之后的语句 立即开始下一次循环迭代
可选参数 break n; 跳出 n 层嵌套循环 continue n; 跳过 n 层循环的本次迭代
适用场景 搜索任务(找到即停止)、发生错误需终止 过滤数据(忽略某些值)、满足条件无需后续操作

 

原创文章,作者:小玖云博客,如若转载,请注明出处:https://www.xahcsmyxgs.top/?post=174

0
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025-12-9 15:46
下一篇 2025-12-10 12:51

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注