【发布时间】:2021-11-16 19:57:13
【问题描述】:
根据 ISO C++:
continue 语句只能出现在一个迭代语句中,并且 导致控制传递到最小的循环继续部分 封闭迭代语句,即循环结束。更多的 准确地说,在每个陈述中
while (foo) { do { for(;;){ { { { // ... //.... //... } } } contin:; contin:; contin:; } } while (foo); }a continue 未包含在封闭的迭代语句中 等价于 goto contin
根据引用的最后一部分,我认为以下是允许的:
#include <iostream>
using namespace std;
int main() {
continue;
cout << "Will be jumped" << endl;
contin:
}
我认为这将用作 goto 语句,跳转到 contin。我错过了什么?
【问题讨论】:
-
continue仅在循环中工作 -
您似乎误解了这些示例。示例(以及this
continueonline reference 中的示例)中显示的内容是等效 而非实际行为。使用continue在循环中等效于使用goto some_label;,其中some_label放置在循环的末尾。跨度> -
当标准对像 contin 这样的标识符使用斜体时,这些是仅用于说明的标识符,不能从 C++ 代码中引用。