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

这个语句很简单,但是while括号里面的是很么意思

这个语句很简单,但是while括号里面的是很么意思

C
qq_放声就去笑_1 2017-12-16 10:21:26
int x=3;do{printf("%3d",x-=2); }while(!(--x));
查看完整描述

1 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

while小括号中的控制表达式的求值为0(或者说逻辑为false)时会结束循环。

这里的控制表达式是 !(--x):

  • 它最后运算的部分是 ! 表达式! 表达式为 false 时会结束 while

  • ! 表达式为 false,也就是 --x 表达式不为0时。--x 表达式的值就是 x-1 的值,在第一次循环 do 部分执行过后,x 的值是 1,那么 --x 的值就是 0

所以第一次循环时 !(--x) 为 true,会进行下一次循环。

而在下次循环时,do 中 x 值会成为 -2,那么这次 while 的控制表达式值就是 false 了,才会结束循环。


也就是说 do 会循环两次,打印出 x 的值分别是 1 和 -2。

查看完整回答
1 反对 回复 2017-12-16
点击展开后面3
  • 1 回答
  • 0 关注
  • 1901 浏览

添加回答

举报

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