打破嵌套循环会发生什么?
假设以下代码:
for(int x = 0; x < 10; x++)
{
do {
if(x == 4)
break;
x++;
} while(x != 1);
}
遇到 break 语句、for 循环或 do while 循环时哪个循环会退出?
打破嵌套循环会发生什么?
假设以下代码:
for(int x = 0; x < 10; x++)
{
do {
if(x == 4)
break;
x++;
} while(x != 1);
}
遇到 break 语句、for 循环或 do while 循环时哪个循环会退出?
或者,如果您不想使用,可以使用标志goto
:
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
}
Break 将杀死最近/最里面的包含中断的循环。在您的示例中,break 将终止 do-while,并且控制跳回到 for() 循环,并简单地启动 for() 的下一次迭代。
但是,由于您在 do() 和 for() 循环中都修改了 x,因此执行会有些不稳定。一旦外部 X 达到 5,您将产生一个无限循环。
while 将中断,for 循环将继续运行。