【问题标题】:Do while loops stop verifying after condition isn't met anymore?在不再满足条件后,while 循环会停止验证吗?
【发布时间】:2018-04-16 07:18:37
【问题描述】:

我最近开始学习 c++,我有一个关于我到达的最后一节的问题,即 while 循环一节。 在这段代码中:

#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
    int i = 0;

    while (i <= 5) {
        cout << "Hello" << endl;
        i = i + 1;
    }

    return 0;
}

while 命令会在值超过 5 后继续检查 i

提前感谢您的回答!

编辑:感谢您的回答和 cmets。我试着把我在想的东西写进代码中,我注意到在循环之后改变 i 的值并没有让它重新开始(这意味着它在 i 超过 5 之后已经停止检查)。 我意识到这是一个愚蠢的问题,我可以通过尝试将其放入代码中来简单地解决它,但为了确定,我仍然要求答案。再次感谢!

【问题讨论】:

  • 你试过了吗?发生了什么?它符合您的期望吗?

标签: c++ visual-studio while-loop


【解决方案1】:

如果您在循环结束后将 i 更改为 0,如下所示:

int main()
{
    int i = 0;

    while (i <= 5) {
        cout << "Hello" << endl;
        i = i + 1;
    }

    i=0;

    return 0;
}

循环不会再次开始,因为它只会将 i 设置为 0,然后返回 0。一旦执行循环,它将不会再次运行。

【讨论】:

    【解决方案2】:

    请注意,C++ 按顺序执行代码,这意味着它会遍历每一行,执行它,然后转到下一行。这对于循环来说是令人困惑的,因为您会看到之前的代码再次被执行;因此,为了解决这个困境,可以将循环段看作一个块,一旦这个块执行,正常的顺序执行就会继续。

    供将来参考:C++ 有一个漂亮的特性,称为多线程,您可以在其中允许多个代码以并行方式执行。您将来某个时候会遇到此功能。

    【讨论】:

      猜你喜欢
      • 2019-01-29
      • 2013-11-22
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 2019-05-16
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多