【发布时间】:2013-08-08 16:29:45
【问题描述】:
for (...)
for (...)
{
break;
break; // 1
}
(1) 处的代码会执行吗?也可能有continue 或其他任何东西。 我知道我可以检查我的调试器,但我想知道 C++ 标准对此有何评论,因为我的编译器可能只是一个特例。
【问题讨论】:
-
那你为什么不阅读文档呢?
-
如果是,那将破坏关键字的目的。
-
“编译器不会做这种“特殊”的事情“——当然,他们会。各种编译器生产商将自己的扩展/改进添加到/超出语言标准。有时是因为他们认为它比标准提供的更好,有时是因为它对他们来说更容易。我假设。 ** 当然,差异并不大,但确实存在。
-
@JBL 我很确定我已经在其他一些语言(Java/C#/something)中看到了这个结构,其中特别允许双
break并打破 2 个嵌套的fors。 -
@NPS 奇怪,但在这种情况下,这似乎是编译器以自己的方式解释的东西,因为在这种情况下,语句的行为将不一致......在新白痴的回答,无论如何,C++ 的标准都非常清楚地表明,控制权会立即传递给刚刚退出的
break范围之外的下一条语句。