Java 逻辑运算符与短路逻辑运算符

逻辑运算符

逻辑运算符 名称 举例
& 逻辑与 a&b ,a和b都为true,结果才为true,其余都为false
逻辑或 a丨b ,a和b都为false,结果才为false,其余都为true
^ 逻辑异或 a^b ,a和b相同(即a和b同为true,或同为false)结果才为false,其余为true
! 逻辑非 !a ,与a 原来的结果相反

& 两边都是true时,结果才为true,只要运算符两边有一个false,结果就为false
| 两边都为false,结果为false,其余都为true
^ 两边如果相同为false,不相同为true
!就是把原来的结果变为相反,!true即为false,!false即为true

短路逻辑运算符

逻辑运算符 名称 作用
&& 短路与 作用和&相同,但是具有短路效果
丨丨 短路或 作用与丨相同,但是具有短路效果

见名知意:如果判断左边情况,来决定右边执行不执行

&&(短路与),如果左边为真,右边执行;如果左边为假,右边不执行
||(短路或),如果左边为假,右边执行;如果左边为真,右边不执行

区别

&与&&

&(逻辑与),无论左边真假,右边都要执行

&&(短路与),如果左边为真,右边执行;如果左边为假,右边不执行

|与||

|(逻辑或),无论左边真假,右边都要执行

||(短路或),如果左边为假,右边执行;如果左边为真,右边不执行

应用

无论使用哪个运算符,对最终的运算结果时候没有影响的。推荐平时多使用 && ,因为它效率更高些。

代码示例

public class Test {
    
    
    public static void main(String[] args) {
    
    
        /**
         * 逻辑运算符,结果为boolean类型
         * & 逻辑与运算  并且,多个条件同时为true,结果才为true,否则为false
         * | 逻辑或运算  或者,全部条件同时为false时,结果才为false,否则为true
         * && 短路与运算  当第一个条件为false时,后面的条件都不会进行判断,提高效率
         * || 短语或运算  当第一个条件为true时,后面的条件都不会进行判断,提高效率
         * ^  逻辑异或运算
         * !  逻辑非运算  非   条件为true时,结果为false
         */
        boolean b = 10>20 & 20>30; //false false
        System.out.println(b);
        boolean b1 = 10>20 & 20<30; // false true
        System.out.println(b1);
        boolean b2 = 20>10 & 30>20; // true true
        System.out.println(b2);
        boolean c = 10>20 | 20>30; // false false
        System.out.println(c);
        boolean c1 = 10<20 | 20>30; // true false
        System.out.println(c1);

        int age = 10;
        boolean d = age >= 20 && (age++)<=10;
        System.out.println(b1);
        System.out.println(age);//10
        boolean d1 = age >=10 && (age++) <= 11;
        System.out.println(d1);
        System.out.println(age);//11
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45525272/article/details/127349521
今日推荐