while(!--x)问题

LA_Lai 2012-10-11 10:37:16
int x=3;
do {printf(“%3d”,x-=2);}
while(!(--x));//X不为零时执行do操作
A)1 B)3 0 C)1 -2 D)死循环

为什么是选C呢?
而这句话while(!(--x))又是什么意思
...全文
1941 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
十八道胡同 2012-10-12
  • 打赏
  • 举报
回复
while(!(--x))
x先减1,然后看减1之后是不是等于0,为0跳出循环 否则执行do语句
AnYidan 2012-10-12
  • 打赏
  • 举报
回复
先执行循环体,再判断
armsword 2012-10-11
  • 打赏
  • 举报
回复
先减,再用减完的值判断。
夏天__ 2012-10-11
  • 打赏
  • 举报
回复 1

int x=3;
do
{printf(“%3d”,x-=2);}
while(!(--x));//X不为零时执行do操作



第一次循环:X=3, {printf(“%3d”,x-=2);} 输出x=x-2=1,输出1;

while(!(--x));表示 先执行--x,x先自减一,x=x-1=0;

然后 while(!0)即while(1),执行下一次循环;

第二次循环:x=0;

{printf(“%3d”,x-=2);} 输出x=x-2=-2,输出-2;

所以输出 1 -2;
longburulin 2012-10-11
  • 打赏
  • 举报
回复
while(!(--x))先自减 在判断是否为0 为0跳出循环 否则执行do语句
晨星 2012-10-11
  • 打赏
  • 举报
回复
就是x减1,然后看减我之后是否为0,只要不是就一直循环。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧