嵌套循环中继续2和中断之间的区别

时间:2015-02-04 10:00:24

标签: php loops break continue

我正在重构一些旧代码,并偶然发现continue 2可以很容易地替换为休息。

for($rows as $i){
      for($columns as $j){
           if( Helper::unicornExists($i, $j) ){
                 //continue 2;  
                 break;
           }
      }
}

如果我们说continue 2使代码更复杂且难以阅读, 是否有任何理由使用它(在2级)嵌套循环?

1 个答案:

答案 0 :(得分:2)

在这个特殊的例子中,似乎它是相同的东西,由你决定你喜欢它的方式。我可以看到保留continue 2的一个原因是,如果在项目的未来开发中,你会在内部之后添加一些东西

for($rows as $i){
      for($columns as $j){
           if( Helper::unicornExists($i, $j) ){
                 //continue 2;  
                 break;
           }
      }
      echo 'done with ', $i, PHP_EOL;
}

如果独角兽确实存在,你需要考虑你的期望。你想跳过内循环,那是break会做什么,或者你想跳过外循环,那是continue 2会做什么的。