首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >break语句不工作

break语句不工作
EN

Stack Overflow用户
提问于 2013-04-03 20:31:16
回答 1查看 1.6K关注 0票数 0

我的代码大致如下所示:

代码语言:javascript
复制
START  
Recursive method A  
    print("Before Loop")  
    loop:  
    for(Object o: list)  
    {  
          print("Outer loop top")  
       for(Object ob: list2)   
       {  
                 print("Inner loop top")  
          //do stuff with o & ob e.g. recursively call method A under certain conditions  
          if(someCondition true)  
          {  
              print("Entered")  
            break loop;  
          }  
                 print("Inner loop bottom")  
        }   
          print("Outer loop bottom")  
    }  

print("After Loop")  

END  

当程序输入someCondition为true的if语句时,它会打印

代码语言:javascript
复制
Entered  

然后,在下一次打印时,它似乎成功地脱离了这两个for循环

代码语言:javascript
复制
After Loop  

然后!!在控制台中打印

代码语言:javascript
复制
inner loop bottom  
Outer Loop bottom  
Outer loop top  
inner loop top  
etc.  

这怎么可能。方法A是从一个以上的地方递归调用的,但是,如果因为该方法再次递归地开始,所以接下来打印“内部循环底部”的原因,那么它不会首先打印‘inner bottom’!但是“前循环”,然后是“外循环顶部”,然后是“内循环顶部”,然后是“内循环底部”。根据print语句,它从两个循环中断,然后跳回内部循环的底部,继续循环内部循环。这是怎么回事。请帮帮我!谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-04-03 20:40:05

使用不带标签的break会中断当前正在执行的最里面的循环。

使用带有标签foo的break会中断标签为foo的语句。

https://developer.mozilla.org/en/JavaScript/Reference/Statements/break

break语句包括一个可选标签,该标签允许程序中断已标记的语句。break语句需要嵌套在这个带标签的语句中。带标签的语句可以是任何块语句;它的前面不一定要有loop语句。

致词:what the difference between break with label and without label in javascript

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15787433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档