关于while后边的分号?

来源:百度知道 编辑:UC知道 时间:2024/06/14 12:57:49
帮我看看这个题
main()
{ int x=2;
while(x--);
printf("%d\n",x);}答案为什么是0
当x为0时while 后的表大示不是为假吗?为什么后边还要执行?
是因为有分号吗?如果是因为有分号那while 不是停不下来了吗?为什么答案回是-1呢?正确答案是-1
我老觉得当x--为0时表达示为假x就不会去执行自身的减减
看来是我理解错了
谢谢各位的回答了

后面跟分号说明循环体为空,会不断地计算谓词
但是这个输出是-1吧?

不好意思,我弄错了,
x--作为一个表达式,表达式有一个数值结果,
这个表达式的结果就是x,
这个表达式还执行了一个操作x=x-1;
x--;这条语句首先是输出了表达式的值,然后执行x=x-1;
对于while()这个语句来说判断的是表达式的值,
当x=0时,首先计算表达式的的值=0,然后x自减,
表达式执行完之后,将表达式的值送给while语句,执行while语句;

那个分号意思是空循环,所以x一直减。。。知道false即是0



结果当然是-1,

X=0循环结束后,x还是要自减的,结果肯定是-1.