C语言 do while 语句求助

来源:百度知道 编辑:UC知道 时间:2024/06/08 18:42:44
请问下列语句执行下来的结果:
{int x=3;
do
{printf("%d",x--);
}
while(!x);
}
我做的是3,2,1.但是答案不对,谁能告诉我原因啊···
!x 是代表 什么意思呢? (判断是否满足x=0,如果是的话就继续,不是的话就终止?)

这个输出就是3啊,刚开始x为3,执行一次printf,输出3,x--变为2,之后进行条件判断!x相当于false,不满足条件,就退出循环了。你要想输出3,2,1的话,应该将while中的条件改为while(x),就没问题了。

应该是3吧,因为是 !x ,
如果是while(x)的话,就是321

我觉得如果是个真正想学习的人,是会自己动手做个小实验来验证的.如果能坚持这么做,毕业之后你就是个小牛了.

x=2时
!2的结果是null

下面程序你运行下看看就知道结果了

#include<stdio.h>
void main()
{int x=3;
do
{printf("%d",x--);
}
while(x!=0);
printf("%s",!2);
}

1.do-while的原理:先执行do后面的语句,然后判断while后面的值,如果为真就返回do,如果为假,就终止循环。

2.x--的原理:先取x的值作为表达式的值,然后,将x-1作为x的值。

3.程序先把3赋值给x,执行do语句,输出3,此时x的值变为2,下来判断while中表达式的真假,对于“!”这个运算符,0代表假,其他的值代表真,2代表真,
"!2"就是假,循环终止。所以,在屏幕上就出现了3。

把!去掉就可以了while(!x)的意思是如果x>0就结束应该是while(x),这样的意思就是当x>0的时候循环,x<=0时结束