main()
{ int x=2;
while (x--);
printf(“%d\n”,x);
}
在这个程序里,不管x为何值,输出值总为-1,请高手解释下哈,谢
第1个回答 2010-01-13
应为while (x--);要执行3次。
第一次:x=2,语句完了,x=1
第二次:x=1,语句完了,x=0
第三次:x=0,语句完了,x=-1,推出循环。
printf(“%d\n”,x);得到-1。
这个程序关键是没循环体,只有判断语句。当x=0时循环要判断,但不执行循环体,而且这个程序是没循环体。
第一次:x=2,语句完了,x=1
第二次:x=1,语句完了,x=0
第三次:x=0,语句完了,x=-1,推出循环。
printf(“%d\n”,x);得到-1。
这个程序关键是没循环体,只有判断语句。当x=0时循环要判断,但不执行循环体,而且这个程序是没循环体。
第2个回答 2010-01-13
因为要退出循环,x就要减到-1
如果你想打印
2
1
则把while后的;去掉
如果你想打印
2
1
则把while后的;去掉
第3个回答 2010-01-13
你知道什么时候退出while循环,这个题不就出来了。很显然x--=0;时退出,x后面一个自减,结果就出来了。本回答被提问者和网友采纳
第4个回答 2010-01-13
补充楼上的
while()中的x值是0的时候就是“非"
1或大于1是就是”是“ 所以嘛 。。
while()中的x值是0的时候就是“非"
1或大于1是就是”是“ 所以嘛 。。
第5个回答 2010-01-13
楼上正解
楼主注意下while()后面那个分号有什么用
楼主注意下while()后面那个分号有什么用