5.运算符3(逻辑运算符)

package Chapter;

//Operator

/*
 * 逻辑运算符:
 *         & 逻辑与       (都是真,才是真)
 *         | 逻辑或          (有一个是真,就是真)
 *         !逻辑非        (取反:!false = true ; !true = false)
 *         ^ 逻辑亦或    (两边的算子只要不一样,就是真)
 * 
 *         && 短路与
 *         || 短路或
 * 
 *  1、逻辑运算符要求两边的算子都是布尔类型,并且逻辑运算符最终的运算结果也是一个布尔类型
 *  2、短路与和逻辑与最终的运算结果是相同的,只不过短路与存在短路现象
 *  3、短路或和逻辑或最终的运算结果是相同的,只不过短路或存在短路现象
 *  4、什么情况下会发生短路现象?
 *  5、什么时候用逻辑运算符,什么时候用短路运算符?
 */
 

public class Sec2_Operator3 {
    public static void main(String[] args) {
        System.out.println(5 > 3 & 5 > 2);//true
        System.out.println(5 > 3 & 5 > 6);//false
        System.out.println(5 > 3 | 5 > 6);//true
        
        System.out.println(true & true);//true
        System.out.println(true & false);//false
        System.out.println(false & false);//false

        System.out.println(true | false);//true
        System.out.println(false | false);//false
        
        System.out.println(!true);//false
        System.out.println(!false);//true
        
        System.out.println(true ^ false);//true
        System.out.println(false ^ false);//false
        System.out.println(true ^ true);//false
        
        //逻辑与和短路与
        int x = 10;
        int y = 8;
        System.out.println( x<y & ++x<y);//false
        System.out.println(x);//11,结果是11说明执行了 ++x
        
        int a = 10;
        int b = 8;
        System.out.println( a<b && ++a<b);//false
        System.out.println(a);//10,说明 ++x没执行,因为a<b已经是false
                              //所以后面的表达式没有被执行,这种被称为短路现象
       

}

 /*
         * 从某个角度讲,短路与更智能,由于后面的表达式可能不执行
         * 所以执行效率较高,在开发中更常用
         * 但是在某些特殊的业务逻辑当中,要求运算符两边的算子必须全部执行
         * 此时必须要使用逻辑与,使用短路与可能导致右边的表达式不执行
         */
        /*
         * 什么情况下会发生 短路或?
         *         第一个表达式执行结果是true,会发生短路与
         * 什么情况下会发生 短路与?
         *         第一个表达式执行结果是false,或发生短路或
         */
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值