!(a+b)+c-1&&b+c/2运算顺序是什么?
3个回答
展开全部
!(a+b)+c-1&&b+c/2
因为&&运算符是短路算法,因此首先判断!(a+b)+c-1的结果是否为0,若为0则不用再计算右边的b+c/2即使b+c/2的优先级更高也是如此,可以验证,修改为!(a+b)&&(b+(c=22));这样最右边的赋值运算符应最先计算,但只要!(a+b)=0,则不会执行右边的c=22这一句,因此不会改变c的值。
若!(a+b)+c-1的结果为1,则按以下顺序计算,注意!(a+b)+c-1的顺序不会受到影响
先计算小括号内的a+b
然后再计算!(a+b)
再计算!(a+b)+c-1,在这里判断!(a+b)+c-1是否为1,若为1则执行右侧的表达式,即
首先计算c/2
再计算b+c/2
最后再把!(a+b)+c-1与b+c/2的结果进行&&运算。
因为&&运算符是短路算法,因此首先判断!(a+b)+c-1的结果是否为0,若为0则不用再计算右边的b+c/2即使b+c/2的优先级更高也是如此,可以验证,修改为!(a+b)&&(b+(c=22));这样最右边的赋值运算符应最先计算,但只要!(a+b)=0,则不会执行右边的c=22这一句,因此不会改变c的值。
若!(a+b)+c-1的结果为1,则按以下顺序计算,注意!(a+b)+c-1的顺序不会受到影响
先计算小括号内的a+b
然后再计算!(a+b)
再计算!(a+b)+c-1,在这里判断!(a+b)+c-1是否为1,若为1则执行右侧的表达式,即
首先计算c/2
再计算b+c/2
最后再把!(a+b)+c-1与b+c/2的结果进行&&运算。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询