首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >中断do while循环

中断do while循环
EN

Stack Overflow用户
提问于 2012-08-31 22:05:52
回答 4查看 58.5K关注 0票数 12

当中断嵌套循环时会发生什么?

假设有以下代码:

代码语言:javascript
复制
for(int x = 0; x < 10; x++)
{
    do {
        if(x == 4)
            break;
        x++;
    } while(x != 1);
}

遇到break语句时,哪个循环将退出,是for循环还是do while循环?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-31 22:06:56

break总是会中断最里面的循环。

6.8.6.3

break语句终止最小的封闭switch或迭代语句的执行。

如果您想要打破这两个循环,请在for后面使用标签,并使用goto进行跳转。

票数 10
EN

Stack Overflow用户

发布于 2012-08-31 22:16:32

或者,如果不想使用goto,也可以使用标志

代码语言:javascript
复制
int flag = 0;

for(int x = 0; x < 10; x++)
{
    do {
        if(x == 4) {
            flag = 1;
            break;
        }
        x++;
    } while(x != 1);

if(flag) 
   break; // To break the for loop
}
票数 4
EN

Stack Overflow用户

发布于 2012-08-31 22:08:16

break将终止包含Break的最近/最里面的循环。在您的示例中,break将终止do-while,并且控制跳回到for()循环,并简单地启动for()的下一次迭代。

但是,由于您同时在do()和for()循环中修改了x,因此执行起来会有点不稳定。一旦外部X达到5,你就会产生一个无限循环。

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

https://stackoverflow.com/questions/12217014

复制
相关文章

相似问题

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