while 语句问题

来源:百度知道 编辑:UC知道 时间:2024/05/08 13:06:48
#include<stdio.h>
void main()
{
int x=2;
while(x--);
printf("%d\n",x);
}

该程序输出的是 -1
为什么会是 -1 呢? 为什么啊?
还有 不是说 只有 do while 语句 中while后面才有 ';' 的嘛?

这个题目明显是忽悠你的眼睛的

while(x--); 这个就是在循环,循环语句为空,当 i 不等于0时都可以运行,当i等于0时,虽然条件不满足,但是 i 还是会自减 1 ,就等于-1了,并且跳出循环,输出

输出-1是对的啊。

当x--大于0的时候,x--转换为bool值就是true,当x--等于-1时,bool值就是0了,就退出while了。所以就输出-1了。