这是我的简单while (true)循环:
while (true)
{
int i = 0;
++i;
cout << i << endl;
if (i == 5) {
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以break;没有退出循环,输出是一个无限的1。
见这对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)