[Java] 逻辑运算符

逻辑运算符两边要求都是布尔类型,并且最终的运算结果也时布尔类型。

& 逻辑与(可以翻译成并且)

| 逻辑或(可以翻译成或者)

! 逻辑非(取反)

&& 短路与

|| 短路或

        //对于逻辑与&运算符来说,只要一边是false,结果就是false
        //只有两边同时为true,结果才是true
        System.out.println(true & true);//true
        System.out.println(true & false);//false
        System.out.println(false & false);//false

        //逻辑或|,只要有一边是true,结果就是true
        System.out.println(true | true);//true
        System.out.println(true | false);//true
        System.out.println(false | true);//true
        System.out.println(false | false);//false

短路与&&,短路或||

短路与&&和逻辑&有什么区别?

首先这两个运算符的运算结果没有任何区别,完全相同。只不过短路与&&会发生短路现象。

         //什么是短路现象,什么时候会发生“短路”。
        int x = 10;
        int y = 11;
        // 逻辑与&什么时候结果为true(两边都是true,结果才是true)
        // 左边的 x>y 表达式结果已经是false了,其实整个表达式的结
        // 结果已经确定是false了,按道理来说右边的表达式不应该执行。
        System.out.println(x > y & x > y++);//false

        // 通过这个测试得出:x > y++ 这个表达式执行了。
        System.out.println(y); // 12

        //测试短路与&&
        int m = 10;
        int n = 11;
        // 使用短路与&&的时候,当左边的表达式为false的时候,右边的表达式不执行
        // 这种现象被称为短路。
        System.out.println(m > n && m > n++);//false
        System.out.println(n); // 11


        // || 短路或
        // “或”的时候只要有一边是true,结果就是true。
        // 所以,当左边的表达式结果是true的时候,右边的表达式不需要执行,此时会短路。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值