逻辑运算符

逻辑运算符

1.逻辑运算符之逻辑与&

左边&右边 都必须为true 则返回的就是true

废话不多说上代码,代码最有说服力

    public static void main(String[] args) {
        //逻辑运算符之逻辑与
        //左边&右边  都必须为true   则返回的就是true
        System.out.println("&单并且");
        System.out.println(true&true);
        System.out.println(true&false);
        System.out.println(false&false);
        /*
        结果为&单并且
            true
            false
            false

         */
        int a=10;
        int b=20;
        int c=30;
        System.out.println("演示比较");
        //a>b  false
        //b>c  false
        System.out.println(a>b&b>c);//false
        //a<b  true
        //b<c  true
        System.out.println(a<b&b<c);//true
        //a<b  true
        //b>c  false
        System.out.println(a<b&b>c);//false
    }
}

2.逻辑运算符之逻辑或 |

左边 | 右边 只要有一个为true的话,则返回结果就是true

上代码

    public static void main(String[] args) {
        //逻辑运算符之逻辑或
        //左边 | 右边 只要有一个为true的话,则返回结果就是true
        System.out.println(true|false);//true
        System.out.println(false|false);//false
        System.out.println(true|true);//true

        System.out.println("演示");
        int a=10;
        int b=20;
        int c=30;
        System.out.println("演示比较");
        //a>b  false
        //b>c  false
        System.out.println(a>b|b>c);//false
        //a<b  true
        //b<c  true
        System.out.println(a<b|b<c);//true
        //a<b  true
        //b>c  false
        System.out.println(a<b|b>c);//true
    }
}

3.短路逻辑运算符&&

直接代码来解释

    public static void main(String[] args) {
        //短路逻辑运算符
        int a=10;
        int b =20;
        //a++>100; 返回为false   b++>20  返回为true
        System.out.println((a++>100)&(b++>10));//false
        System.out.println(a);//a=11
        System.out.println(b);//b=21
        System.out.println("=====&&======");
        System.out.println((a++>100)&&(b++>10));//false
        System.out.println(a);//a=11
        System.out.println(b);//b=21
    }
}
最后那个b=21知道啥原因吗?原因就是使用双&&左边会反回false 右边不会被执行 直接干短路,根本不吊它了

4.短路运算符之双或者 ||

直接代码来解释


public class demo5 {
    public static void main(String[] args) {
        //短路运算符之双或者
        int a=10;
        int b=20;
        System.out.println("短路或");
        //使用或者 左边和右边只要有一个返回为true,最终结果就是true
        //a++>10 true     b++>100  false
        System.out.println((a++>1)|(b++>100));  //结果true
        System.out.println(a);  //11
        System.out.println(b);//21
        System.out.println("使用双或者");
        System.out.println((a++>1)||(b++>100));  //结果true
        System.out.println(a);  //12
        System.out.println(b);//21
    }
}

最后b=21有人会问使用&或者&&不是后面不被执行了,怎么使用 || 也会被短路了呢?原因是啥?原因就是 || 也有短路的成分,你前面都判断是正确的,后面也不用看了。提高效率,那么有人会问,那要是前面是错误的,后面的是对的返回的是什么?前面会不会执行,这样说吧,只要有一个返回的是true,那么就会返回true,除非都是false。返回的是false,直接代码吧

    public static void main(String[] args) {
        //短路运算符之双或者
        int a=10;
        int b=20;
        System.out.println("短路或");
        //使用或者 左边和右边只要有一个返回为true,最终结果就是true
        //a++>10 true     b++>100  false
        System.out.println((a++>1)|(b++>100));  //结果true
        System.out.println(a);  //11
        System.out.println(b);//21
        System.out.println("使用双或者");
        System.out.println((a++>100)||(b++>10));  //结果true
        System.out.println(a);  //12
        System.out.println(b);//22
    }
}
明白了吗?亲
posted @ 2022-03-03 11:52  秃头星人  阅读(24)  评论(0编辑  收藏  举报