java之逻辑运算符

时间:2022-07-23
本文章向大家介绍java之逻辑运算符,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

&-逻辑与 |-逻辑或 !-逻辑非 &&-短路与 ||-短路或 ^-逻辑异或

a

b

a&b

a|b

!a

a^b

a&&b

a||b

T

T

T

T

N

N

T

T

T

N

N

T

N

T

N

T

N

T

N

T

T

T

N

T

N

N

N

N

T

N

N

N

逻辑运算符需要注意的几点:

  • java中没有连续型布尔表达式,即不可以写成3<x<6,而要写成x>3&x<6;
  • “&”和"&&"的区别: &:左边无论真假,右边都进行运算; &&:当左边为真时,右边参与运算;当左边为假时,右边不参与运算;
public class Test{
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        if (a == b && test()){
            System.out.println("world");
        }
    }
    
    public static boolean test() {
        System.out.println("hello");
        return false;
    }
}

由于a==b为假,所以右边不参与计算,最后什么都不会输出。

public class Test{
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        if (a < b && test()){
            System.out.println("world");
        }
    }
    
    public static boolean test() {
        System.out.println("hello");
        return false;
    }
}

由于a<b为真,此时右边参与运算,但是右边结果为false,所以整个判断表达式为false,即不会运行到if里面,所以会输出只会hello。

public class Test{
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        if (a == b && test()){
            System.out.println("world");
        }
    }
    
    public static boolean test() {
        System.out.println("hello");
        return false;
    }
}

由于a<b为真,此时右边参与运算,右边结果也为true,所以整个判断表达式为true,会运行到if里面,所以会输出只会hello wrold。

  • “|”和"||"的区别: |:左边无论真假,右边都进行运算; ||:当左边为真时,右边参与运算;当左边为假时,右边不参与运算;
  • "^"异或直接理解就是相同则返回false,不同就返回true;