程序陷入死循环

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;
}

space1时,这个循环会递增i,所以一直循环下去。它将循环直到 space 溢出,并递增直到 space0

你可能想要:

while(space)
{
    std::cout << ' ';
    --space;
}