为了账号安全,请及时绑定邮箱和手机立即绑定

问下这题 输出结果是 3 我 怎么算出来是 3 2 1?

问下这题 输出结果是 3 我 怎么算出来是 3 2 1?

弑天下 2022-12-22 17:13:41
C语言 while(!x);是什么意思?main(){int x=3;do {printf("%d",x--);}while(!x);}是不是 while(!x)和 do while(!x)的 意思是不一样的 ?求教!
查看完整描述

3 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

while()是循环语句。
while(expr)表示当逻辑表达式expr为真时,循环运行循环体,直到expr值为假或遇到break语句时退出。

!x是逻辑非操作,当x为0时,值为真,否则值为假。 在这里等效于x==0。
在while(!x)后面有一个分号,表示该循环的循环体为空,即只做判断和循环,并不执行操作。
于是这句的意思就是,如果x为0,则一直循环下去,不做操作,否则继续执行。
如果没有其它线程来改变x的值,那么这里就是一个死循环了。

查看完整回答
反对 回复 2022-12-25
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

while(!x)后面有一个分号,表示该循环的循环体为空,即只做判断和循环,并不执行操作。

!是反运算符,单目,!真 即 假,!假 即 真。
如果x != 0, 则 !x 为 0,即假,如果x == 0,则 !x 为 真。

while()是循环语句。
while(expr)表示当逻辑表达式expr为真时,循环运行循环体,直到expr值为假或遇到break语句时退出。

!x是逻辑非操作,当x为0时,值为真,否则值为假。 在这里等效于x==0。

 


查看完整回答
反对 回复 2022-12-25
?
当年话下

TA贡献1890条经验 获得超9个赞

!是反运算符,单目,!真 即 假,!假 即 真。
如果x != 0, 则 !x 为 0,即假,如果x == 0,则 !x 为 真。
while循环和 do-while 循环的区别在于,while是先检查是否复合条件再循环,而do-while循环则是在循环体尾检查是否符合条件,这就说明,do-while循环内的语句至少被执行一次。
这好比下面的例子
do{
吃一个三明治 ←←←←← Statement;
我饿吗?(饿,再吃一个三明治↑)(不饿,退出循环↓) }while();
←←←←←←←←←
这就意味着,你至少得吃一个三明治。
如果使用while循环,则像下面这样

我饿吗?(饿,吃↓)(不饿↓) while() {
吃一个三明治 ← ↓ statement;}  


这说明,你不一定吃一个三明治。
这就是while跟do-while的区别。。。=、=

查看完整回答
反对 回复 2022-12-25
  • 3 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信