这个C程序中do~~while(!(--x))是什么意思?
main(){intx;x=3;do{printf("%d,\n",x-=2);}while(!(--x));}为什么第二次循环后等于-2了,不是1-2=-1吗...
main()
{int x;
x=3;
do
{printf("%d,\n",x-=2);
}
while(!(--x));
}
为什么第二次循环后等于-2了,不是1-2=-1吗 展开
{int x;
x=3;
do
{printf("%d,\n",x-=2);
}
while(!(--x));
}
为什么第二次循环后等于-2了,不是1-2=-1吗 展开
2个回答
展开全部
main()
{int x;
x=3;
do
{
printf("%d,\n",x-=2);
}while(!(--x));
}
do..while要先执行循环体的内容
先输出x-=2,也就是1
然后判断!(--x),先判断括号里的,--x为0(先减后取),再非一下,0的非也就是1,所以还要再执行循环
x-=2再输出一次,这时x=-2
再判断!(--x),--x为-3, 任何非0值进行'!'运算就为0,所以循环OVER了
{int x;
x=3;
do
{
printf("%d,\n",x-=2);
}while(!(--x));
}
do..while要先执行循环体的内容
先输出x-=2,也就是1
然后判断!(--x),先判断括号里的,--x为0(先减后取),再非一下,0的非也就是1,所以还要再执行循环
x-=2再输出一次,这时x=-2
再判断!(--x),--x为-3, 任何非0值进行'!'运算就为0,所以循环OVER了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询