在 C++ 中退出 while (true) 循环

Ila*_*n15 -2 c++

这是我的简单while (true)循环:

while (true)  
    {
        int i = 0;
        ++i;
        cout << i << endl;
        if (i == 5) {
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以break;没有退出循环,输出是一个无限的1

abh*_*ora 5

Why use a for loop instead of a while loop?

现在,来回答你的问题:

您正在循环的i每次迭代中初始化变量while。将 的定义i移到 while 循环之外,以便可以更新它的值。

尝试这个:

#include <iostream>

int main(void)
{
    int i = 0;
    while (true)  
    {
        ++i;
        std::cout << i << std::endl;
        if (i == 5)
            break;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

建议:

您也可以使用for循环,因为它更适合打印一系列数字。

#include <iostream>

int main(void)
{
    for (int i = 1; i <= 5; i++)
        std::cout << i << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)