for (...)
for (...)
{
break;
break; // 1
}
(1)的代码会执行吗?也可能有continue
或其他任何内容。 我知道我可以检查我的调试器,但我想知道C ++标准对它的说法,因为我的编译器可能只是一个特例。
答案 0 :(得分:1)
6.6.1中断声明[stmt.break]
break语句只能在iteration-statement或switch语句中出现并导致终止 最小的封闭迭代语句或switch语句;控制传递给声明 在终止的陈述之后,如果有的话。
因此 1 甚至不应该达到。某些Java编译器甚至可能会标记代码无法访问。
答案 1 :(得分:1)
按照标准
在嵌套语句中,break语句结束直接包含它的do,for,switch或while语句。
所以在你的情况下,它总是会先破坏而永远不会进入第二次破坏声明。
答案 2 :(得分:0)
(1)处的代码不会执行,break
表示跳出循环,因此在第一次中断后,代码将跳出内循环。
答案 3 :(得分:0)
在该特定循环中,不会,执行后没有代码将执行,因为break将退出该循环并从内部for循环结束后继续执行。虽然在中断之后(在外部循环内)出现的内部循环之外的任何代码都将被执行。
答案 4 :(得分:0)
不,每次第一个break语句被命中时,内部循环将退出,并且永远不会达到第二个break语句。
答案 5 :(得分:0)
您可以看到here.
我确信下一次休息永远不会超过。无论你使用什么编译器。
答案 6 :(得分:0)
没有。在遇到中断时,代码执行跳出内部第一个循环。
即使代码是这样的
break;
continue;
break;
同样的事情发生了。继续只是告诉编译器迭代循环进一步跳过其间任何代码的一种方法。