在PHP中中断和继续之间的区别?


Answers:


517

break完全结束一个循环,continue只需捷径当前迭代并继续进行下一个迭代即可。

while ($foo) {   <--------------------┐
    continue;    --- goes back here --┘
    break;       ----- jumps here ----┐
}                                     |
                 <--------------------┘

这样使用:

while ($droid = searchDroids()) {
    if ($droid != $theDroidYoureLookingFor) {
        continue; // ..the search with the next droid
    }

    $foundDroidYoureLookingFor = true;
    break; // ..off the search
}

56
滥用这些功能的结果是:flickr.com/photos/24973901@N04/2762458387
neokio 2012年

7
喜欢这个答案!提醒的我WP.org对尤达条件推荐:make.wordpress.org/core/handbook/coding-standards/php/...
鲍勃·格雷戈尔

4
这个答案已经过去了7年,但值得一提。在PHP文件从V4 breakcontinue在相同switch。都退出开关。从外部循环中退出,如果需要的话continue 2
Amin.Qarabaqi

@BobGregor目前,该部分可在发现make.wordpress.org/core/handbook/best-practices/...
杜威·德哈恩

@deceze,此示例代码不好。您分配在任何地方都不使用的变量。建议的编辑更具可读性。
Tajni

49

break退出您所在的循环,继续立即从循环的下一个循环开始。

例:

$i = 10;
while (--$i)
{
    if ($i == 8)
    {
        continue;
    }
    if ($i == 5)
    {
        break;
    }
    echo $i . "\n";
}

将输出:

9
7
6

1
+1; 基本上与使用这些关键字的所有其他语言相同。
Karl Knechtel 2010年

+1; 只是简单的解释和好的例子,即使是面团while(--$i)对于新手来说也有些棘手。

@Omeid我同意,这很棘手...但是我不确定php的for循环语法并懒洋洋地查找它
Hinek 2010年

这是一个很好的例子!
demuro1 2014年

1
很好的例子。(回显$ i行。“ \ n”末尾需要一个分号。)
user3563097 2015年

16

打破:

break终止foreach,while,do-while或switch结构的当前执行。

继续:

在循环结构内使用continue可以跳过当前循环的其余部分,并在条件评估和下一次迭代的开始处继续执行。

因此,根据您的需要,您可以将代码中当前正在执行的位置重置为当前嵌套的不同级别。

另外,请看这里,详细了解“休息与继续”的艺术细节,并提供许多示例



5

break用来从循环语句中退出,但是继续只是在特定条件下停止脚本,然后继续循环语句直到结束。

for($i=0; $i<10; $i++){
    if($i == 5){
        echo "It reach five<br>";
        continue;
    }
    echo $i . "<br>";
}

echo "<hr>";

for($i=0; $i<10; $i++){
    if($i == 5){
         echo "It reach end<br>";
         break;
    }
    echo $i . "<br>";
}

希望它能对你有所帮助;


4

Break会终止当前的循环/控制结构,并跳到其末尾,无论循环会重复多少次。

继续跳到循环的下一个迭代的开始。


4

在循环结构中使用“继续”来跳过当前循环的其余部分,并在条件评估和下一次迭代的开始处继续执行。

'break'结束当前foreach,while,do-while或switch结构的执行。

break接受一个可选的数值参数,该参数告诉它要分解多少个嵌套的封闭结构。

查看以下链接:

http://www.php.net/manual/en/control-structures.break.php

http://www.php.net/manual/en/control-structures.continue.php

希望能帮助到你..


3

break 将停止当前循环(或传递一个整数以告诉它要中断多少个循环)。

continue 将停止当前迭代并开始下一个迭代。



2

我在这里写的不一样。只是PHP手册中的变更日志记录。


更新日志以继续

Version Description

7.0.0 - continue outside of a loop or switch control structure is now detected at compile-time instead of run-time as before, and triggers an E_COMPILE_ERROR.

5.4.0   continue 0; is no longer valid. In previous versions it was interpreted the same as continue 1;.

5.4.0   Removed the ability to pass in variables (e.g., $num = 2; continue $num;) as the numerical argument.

休息的变更日志

Version Description

7.0.0   break outside of a loop or switch control structure is now detected at compile-time instead of run-time as before, and triggers an E_COMPILE_ERROR.

5.4.0   break 0; is no longer valid. In previous versions it was interpreted the same as break 1;.

5.4.0   Removed the ability to pass in variables (e.g., $num = 2; break $num;) as the numerical argument.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.