int main()
{
int i=3;
while(i--)
cout << i << " ";
system("pause");
return 0;
}
结果: 2 1 0
为什么不:2 1 0 -1 -2 -3 ......(循环)?
答案 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
表示true
,0
表示false
。
因此,在您的情况下,由于i
在循环的每次迭代中递减,在某个时刻,i
变为0
,
这是false
并且循环结束。