为什么这段代码没有循环(同时)?

时间:2016-10-12 18:05:19

标签: c++ loops while-loop decrement

int main()
{
    int i=3;
    while(i--)
        cout << i << " ";
    system("pause");
    return 0;
}

结果: 2 1 0

为什么不:2 1 0 -1 -2 -3 ......(循环)?

5 个答案:

答案 0 :(得分:1)

它没有输出你期待的东西的原因是因为那个魔法0。

0,在C ++和大多数其他语言中,求值为boolean false。所有其他数字都是真的。在这种情况下,您使用i的值作为循环条件,因此,当i == 0时,循环停止并且程序继续运行。

答案 1 :(得分:0)

只要i递减到零,i--就为假,while就会停止。

答案 2 :(得分:0)

  

为什么不:2 1 0 -1 -2 -3 ......(循环)?

当条件中的表达式求值为false时,循环中断。当i的值为零时会发生这种情况。

答案 3 :(得分:0)

int main()
{
    int i=3;
    while(i--)
        cout << i << " ";
    system("pause");
    return 0;
}

一旦i点击0,它就不再是真的,因此它会结束循环。

while( true )
{
    --i;
}

在这里会更好。

答案 4 :(得分:0)

使用while循环时,1表示true0表示false

因此,在您的情况下,由于i在循环的每次迭代中递减,在某个时刻,i变为0, 这是false并且循环结束。