双目运算符截断(短路)

        我们很多同学都苦恼与双目运算符的计算,不知道具体的结合方法。

        双目运算符中逻辑并运算&&的优先级高于逻辑或运算||。

        下面是我具体说一下截断。        

      

 

 

        上图代码中,++自增运算是先进行自身加运算再取数进行逻辑运算。

a进行++a运算后成了a,很多人疑惑为什么a+b=3,而不是4,按道理b的值应该也是2,++b也进行了自增运算。这就是进行了截断,因为我们进行的是双目运算是从左到右进行结合,我们先进行处理是是++a||,已知a是2的情况下,不论后面是不是真值,我们都确定此结果为真,此时进行截断。

        有的人问,&&的优先级不是高于||的优先级,也可以说是短路运算:&&的优先级高于||,但运算符的优先级与系统进行表达式运算的顺序没有必然的关系,比如表达式A||B&&C,由于&&优先级高于||,所以等效于A||(B&&C),但是系统会先对表达式中的A进行判断,若A的值为非零值(真),则由于逻辑运算符的短路效应,后面的表达式B&&C就不再判断;反之则继续进行表达式B&&C的判断。

 

 

         从上面可以看到--a后,a的值已经为零所以,我们进行截断,即只对a进行计算完之后计算机系统不再对b进行计算处理。这是&&的截断情况。但是我们没有办法直接确定我们的真值结果例如下面的情况:

        我们看到代码。此时a的值为零但是,后面++c使得我们的真值最后变成了1。截断仅用于计算变量。

 

 

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值