对于循环,循环次数比它必须的次数多一次



我正在处理一个简单的简短C++代码,for 循环循环比它必须的多循环一个(使用 code::blocks 开发):

#include <iostream>
using namespace std;
int main() {
    int x = 0;
    for (x=10; x<20; x++);
    cout<<x;
    return 0;
}

输出是 20,但据我所知必须是 19。

图片链接 : https://drive.google.com/file/d/0B9WsVzm6FTagbC1uNHpMZ1p6SW8/edit?usp=sharing

输出正确。第二个语句x<20定义是否执行循环。但是,x 增加到 20,不满足条件,并且不执行循环。您的代码在 for 循环之后打印 x 变量,这就是为什么 20 是正确的输出。

x < 20是必须

满足的条件才能保持在循环内,这意味着您只会在x >= 20时退出循环,因此当您到达x = 19时,您仍然会再迭代一次,因为19 < 20

foor 循环中的中间部分 ;x<20; 是循环条件。这意味着如果它不再为真,它将不会再次执行 x++。因此,只有当 x 达到 20

我们可以使用 while 循环重写您的代码,这可能会使其更清晰:

int main() {
    int x = 10;
    while (x < 20)
        x++;
    cout << x << "n";
    return 0;
}

以这种方式编写时,很明显,在迭代中,当 while 循环结束时,该x == 20 .

相关内容

最新更新