是否可以在 C++ 的循环外使用 continue 关键字?
Is it possible to use continue keyword outside a loop in C++?
根据 ISO C++:
The continue statement shall occur only in an iteration-statement and
causes control to pass to the loop-continuation portion of the smallest
enclosing iteration-statement, that is, to the end of the loop. More
precisely, in each of the statements
while (foo) { do { for(;;){
{ { {
// ... //.... //...
} } }
contin:; contin:; contin:;
} } while (foo); }
a continue not contained in an enclosed iteration statement is
equivalent to goto contin
根据引用的最后一部分,我认为可以允许以下内容:
#include <iostream>
using namespace std;
int main() {
continue;
cout << "Will be jumped" << endl;
contin:
}
我认为这可以用作 goto 语句,跳转到 contin
。我错过了什么?
这是一个轻微的措辞问题。引用的意思是在
for (;;) {
{
// ...
}
contin: ;
}
...
可以是任何内容,包括另一个迭代语句。
for (;;) {
{
while(foo()) {
// ...
continue;
}
}
contin: ;
}
未 嵌套在另一个循环结构中的 continue;
将等同于 goto contin;
。但是如果被包含,当然会继续内部循环,而不是外部循环。
请记住,contin: ;
用于说明目的。这并不意味着您可以使用文字 C++ 级别的标签来做事。
根据 ISO C++:
The continue statement shall occur only in an iteration-statement and causes control to pass to the loop-continuation portion of the smallest enclosing iteration-statement, that is, to the end of the loop. More precisely, in each of the statements
while (foo) { do { for(;;){ { { { // ... //.... //... } } } contin:; contin:; contin:; } } while (foo); }
a continue not contained in an enclosed iteration statement is equivalent to goto contin
根据引用的最后一部分,我认为可以允许以下内容:
#include <iostream>
using namespace std;
int main() {
continue;
cout << "Will be jumped" << endl;
contin:
}
我认为这可以用作 goto 语句,跳转到 contin
。我错过了什么?
这是一个轻微的措辞问题。引用的意思是在
for (;;) {
{
// ...
}
contin: ;
}
...
可以是任何内容,包括另一个迭代语句。
for (;;) {
{
while(foo()) {
// ...
continue;
}
}
contin: ;
}
未 嵌套在另一个循环结构中的 continue;
将等同于 goto contin;
。但是如果被包含,当然会继续内部循环,而不是外部循环。
请记住,contin: ;
用于说明目的。这并不意味着您可以使用文字 C++ 级别的标签来做事。