c++ - 是否可以在 C++ 的循环外使用 continue 关键字?
问题描述
根据 ISO C++:
continue 语句应仅出现在迭代语句中,并导致控制传递到最小的封闭迭代语句的循环继续部分,即循环结束。更准确地说,在每个陈述中
while (foo) { do { for(;;){ { { { // ... //.... //... } } } contin:; contin:; contin:; } } while (foo); }
未包含在封闭的迭代语句中的continue等效于 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++ 级别的标签来做事。
推荐阅读
- php - 是否有可能在不循环的情况下获得一系列时间戳?
- python - 将不同的 if 语句应用于 numpy 数组的每个元素时出错
- reactjs - Recharts - 调整 yAxis 笛卡尔网格的位置
- android - 如何替换活动中的片段
- python - 减少在 CloudFront 上部署的 python AWS Lambda 大小
- php - 在 Laravel 中使用会话 ID 生成令牌的最佳方法是什么
- javascript - TypeError:无法读取未定义的谷歌表格应用程序脚本的属性
- html - 反应形式单选按钮默认值已选中
- python - 支持 Oracle 客户端 10.2.0 的最新 cx_Oracle 版本是什么?
- php - Symfony 约束小于日期