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



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

while (true)  
{
int i = 0;
++i;
cout << i << endl;
if (i == 5) {
break;
}
}
}

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

参见Why use a for loop instead of a while loop?

现在,来谈谈你的问题:

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

试试这个:

#include <iostream>
int main(void)
{
int i = 0;
while (true)  
{
++i;
std::cout << i << std::endl;
if (i == 5)
break;
}
return 0;
}

输出:

1
2
3
4
5

建议:

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

#include <iostream>
int main(void)
{
for (int i = 1; i <= 5; i++)
std::cout << i << std::endl;
return 0;
}

i在每次迭代中总是初始化为0。你应该在循环之外使用这个。

在循环的每次运行中都要创建一个新的变量i。它被初始化为零,然后你把它增加一。

所以之后

int i = 0;
++i;

变量CCD_ 11总是为1。

解决方案:

int i = 0;
while (true) {
{
++i;
cout << i << endl;
if (i == 5) {
break;
}
}
}

或者你可以使用一个简单的for循环:

for (int i = 0; i <= 5; i++)  
{
cout << i << endl;
}

最新更新