常见运算符的运算优先级练习

常见的运算符(按优先级排序):

  • 一元运算符,也叫单目运算符,常见:++(自加)、–(自减)、!(逻辑非)、~(按位取反)
  • 四则运算符,加减乘除
  • 位移运算符,<<(左移)、>>(右移)
  • 关系运算符,大于、等于、小于、大于等于、小于等于
  • 逻辑运算符,&&(逻辑与)、||(逻辑非)

短路运算
逻辑表达式,包含两个逻辑运算符||和&&,这两个是用短路运算形式来进行运算。
当 || 的表达式中,有一边的结果为真,那么另一边不用再去判断,结果直接为真。
当 && 表达式中,有一边的结果为假,那么另一边不用再去判断,结果直接为假。
当一个表达式中,同时包含了||、&&这两个逻辑运算符,&&(逻辑与)的优先级高于 ||(逻辑或) 。

题目:
1、分别计算 x=4,x=9,x=11时,表达式的结果,与x的值。
x>5&& x<<8-7>20 || !(x++<15)

2、分别计算x=4,x=9,x=11时,表达式的结果,与x的值。
x>5||x<<8-7>20 && !(x++<15)

分析过程:
两个表达式中,存在3个相同的表达式,分别是x>5、x<<8-7>20、!(x++<15),这里设计测试用例使用了边界值法。
测试x>5,当x=4,就是其中的边界值之一。
x<<8-7>20,意思是x左移一位8-7位后大于20,即x左移1位后大于20,即x大于10。当x=9,就是边界值之一。
因此。
题目1的表达式可简化为 (x>5&& x>10)|| !(x++<15)
题目2的表达式可简化为 x>5||(x>10 && !(x++<15))

计算过程:
题目1:(x>5&& x>10)|| !(x++<15)

x=4时:
1. &&会导致短路,所以先计算x>5,结果为false。
2. 因为x>5的结果为假,所以x>10不再运算,所以&&的结果为false。
3. 此时表达式为false|| !(x++<15),需要进行后面的计算, !(x++<15) 等于 !(4<15) ,!(4<15)的结果为false。x在这步做了自加,x的值变成了5。
4. 表达式为 false||false 。所以最终结果为false。x的值为5。

当x=9时:
1. &&会导致短路,所以先计算x>5,结果为true。
2. 因为x>5的结果为真,所以x>10需要继续判断,x>10的结果为false,所以&&的结果为false。
3. 此时表达式为false|| !(x++<15),需要进行后面的计算, !(x++<15) 即为 !(9<15) ,!(9<15)的结果为false。x在这步做了自加,x的值变成了10。
4. 表达式为 false||false 。所以最终结果为false。x的值为10。

当x=11时:
1. &&会导致短路,所以先计算x>5,结果为true。
2. 因为x>5的结果为真,所以x>10需要继续判断,x>10的结果为true,所以&&的结果为true。
3. 此时表达式为true|| !(x++<15),不再进行后面的计算,x的值仍为11。
4. 所以最终结果为true。x的值为11。

题目2:x>5||(x>10 && !(x++<15))

x=4时:
1. x>5的结果是false,所以进行后面的计算,变为false||(x>10 && !(x++<15))。
2. 因为x>10的结果为假,所以!(x++<15))不再运算,所以x的值不发生变化,x的值仍为4。&&的结果为false。
3. 表达式为 false||false 。所以最终结果为false。x的值为4。

x=9时:
1. x>5的结果是true,所以不再进行后面的计算,所以x的值不发生变化,x的值仍为9。
2. 所以最终结果为true。x的值为9。

x=11时:
1. x>5的结果是true,所以不再进行后面的计算,所以x的值不发生变化,x的值仍为11。
2. 所以最终结果为true。x的值为11。

总结:有多个短路运算符时,&&的优先级高于||。运算顺序从左向右计算。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

s_海棠依旧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值