程序陷入死循环
Program stuck in Infinite loop
我的程序进入无限循环,无法打印所需的输出请帮助任何人
在外层 while
循环的第 2 次及后续迭代中,space
将被初始化为非零值,然后 while(space)
循环将继续递增 space
很长时间直到溢出为负值,然后继续循环很长时间,直到 space
最终递增为 0,最终打破循环。当 int
被评估为布尔值时,只有 0 评估为 false,所有其他值评估为 true。一个 32 位 int
可以容纳 4294967296 个唯一值 (-2147483648..2147483647),给人一种 错觉 你的循环是无限的。
while(space)
{
std::cout << ' ';
space = space + 1;
}
当space
为1
时,这个循环会递增i
,所以一直循环下去。它将循环直到 space
溢出,并递增直到 space
为 0
你可能想要:
while(space)
{
std::cout << ' ';
--space;
}
我的程序进入无限循环,无法打印所需的输出请帮助任何人
在外层 while
循环的第 2 次及后续迭代中,space
将被初始化为非零值,然后 while(space)
循环将继续递增 space
很长时间直到溢出为负值,然后继续循环很长时间,直到 space
最终递增为 0,最终打破循环。当 int
被评估为布尔值时,只有 0 评估为 false,所有其他值评估为 true。一个 32 位 int
可以容纳 4294967296 个唯一值 (-2147483648..2147483647),给人一种 错觉 你的循环是无限的。
while(space)
{
std::cout << ' ';
space = space + 1;
}
当space
为1
时,这个循环会递增i
,所以一直循环下去。它将循环直到 space
溢出,并递增直到 space
为 0
你可能想要:
while(space)
{
std::cout << ' ';
--space;
}