c语言中,a=-1,b=1;if((++a<0)&&!(b--<=0))
求解释if判断条件,在解释一下括号里的逻辑如何判断,谢谢答案是b值并没有减1.但我还是搞不清为什么b为啥没有减1...
求解释if判断条件,在解释一下括号里的逻辑如何判断,谢谢
答案是b值并没有减1.但我还是搞不清为什么b为啥没有减1 展开
答案是b值并没有减1.但我还是搞不清为什么b为啥没有减1 展开
5个回答
展开全部
1 if 里面有两个判断语句, 如果第一个为false,不管第二个为false或者为ture,结果都为false,所以如果第一个为false,就没有必要执行第二个了,程序就是这么做的。
2 在你的判断中++a结果0.很显然0<0 是false,所以此时你整个判断语句就为false。下面即使再有N个条件也不会去判断了。
2 在你的判断中++a结果0.很显然0<0 是false,所以此时你整个判断语句就为false。下面即使再有N个条件也不会去判断了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
++a是先算a=a+1再把a的值作为(++a)的值,如当a=-1时则(++a)=0;a=0.
b--则是先将b的值作为b--的值,在执行b=b-1,如当b=1时则(b--)=1,b=0;
&&是数学中并的关系,!则是对()里的否定,如果()里的表达式成立则,!()不立,!的运算级高所以先执行!(),在执行&&。
b--则是先将b的值作为b--的值,在执行b=b-1,如当b=1时则(b--)=1,b=0;
&&是数学中并的关系,!则是对()里的否定,如果()里的表达式成立则,!()不立,!的运算级高所以先执行!(),在执行&&。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(++a<0)&&!(b--<=0)
运算级() > ++ > -- > < > <= > ! >&&
执行顺序
++a<0其中先++a=0 ++a<0 不成立 值为0
&&两边都成立值为1
只要有0就不成立
所以后面的就短路了
后面根本就没有执行
单纯执行到++a<0就结束了
if的执行体不执行.....
运算级() > ++ > -- > < > <= > ! >&&
执行顺序
++a<0其中先++a=0 ++a<0 不成立 值为0
&&两边都成立值为1
只要有0就不成立
所以后面的就短路了
后面根本就没有执行
单纯执行到++a<0就结束了
if的执行体不执行.....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
++a<0 先判断a是否大于0 然后再加1 b--<=0 先b—1 然后再判断<=0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询