首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Continue语句

Continue语句
EN

Stack Overflow用户
提问于 2011-05-24 01:38:44
回答 4查看 239关注 0票数 5

想知道continue语句在do...while(false)循环中的作用,我模拟了一个简单的测试用例(伪代码):

代码语言:javascript
复制
count = 0;
do {
    output(count);
    count++;
    if (count < 10)
        continue;
}while (false);

output('out of loop');

令我惊讶的是,输出结果是:

代码语言:javascript
复制
0
out of loop

有点困惑,我把循环从do...while改成了for

代码语言:javascript
复制
for (count = 0; count == 0; count++) {
    output(count);
    if (count < 10)
        continue;
}
output('out of loop');

虽然功能上不同,但目的实际上是相同的:使一个条件只满足第一次迭代,然后在下一次迭代中继续(直到达到某个值,纯粹是为了阻止可能的无限循环)。它们可能不会运行相同的次数,但这里的功能并不重要。

输出与之前相同:

代码语言:javascript
复制
0
out of loop

现在,用一个简单的while循环来表示:

代码语言:javascript
复制
count = 0;
while (count == 0) {
    output(count);
    count++;
    if (count < 10)
        continue;
}
output('out of loop');

再一次,同样的输出。

这有点令人困惑,因为我一直认为continue语句是“跳到下一次迭代”。所以,我在这里问:continue语句在每个循环中做什么?它是不是就跳到这个状态了?

(为了它的价值,我在JavaScript中测试了上面的代码,但我相信它是语言不可知的……js必须至少做到这一点)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-24 01:43:19

在for循环中,continue运行for语句的第三个表达式(通常用作某种迭代),然后运行条件(第二个表达式),如果条件为真,则运行循环。它不会运行循环当前迭代的其余部分。

在while (或do-while)循环中,它只运行条件,如果条件成立,则运行循环。它也不会运行循环当前迭代的其余部分。

票数 5
EN

Stack Overflow用户

发布于 2011-05-24 01:45:51

您将continue语句定义为“跳转到下一次迭代”是正确的。这将强制程序通过首先重新计算条件表达式来开始下一次迭代。

代码段的问题在于,它们在一次迭代后全部退出,因为您的条件表达式设置为falsecount ==0。这将总是在一次迭代后返回false。

此外,将continue语句放在循环的末尾是没有意义的。无论哪种情况,它都将重新计算条件表达式。

票数 1
EN

Stack Overflow用户

发布于 2011-05-24 01:54:39

最好将continue看作是跳到封闭循环的末尾。这可能会有帮助:

代码语言:javascript
复制
#include <iostream>
using namespace std;

int main() {

    int n = 0;

    do {
        cout << n << endl;
        n += 1;
        if ( n == 3 ) {
            continue;
        }
        cout << "n was not 3" << endl;
    } while( n != 3 );

}

打印的内容:

代码语言:javascript
复制
0
n was not 3
1
n was not 3
2

并终止,因为continue会跳转到循环末尾的while()。for()和while()循环也有类似的僵硬现象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6100799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档