逻辑运算符(Java中)有四类:

 &&(短路与),&

    ||(短路或),   |


短路与是JAVA语言中的一个逻辑运算符,记作&&,与编程语言中的与逻辑相似,但具有短路性质。

符号为:&&。

A&&B, 当A为false时,不去计算B的值而直接返回false;当A为true时,计算B的值。(来自百度百科)

而A&B,需要计算A和B的值才会返回值。

简单的来说:

&&和&都是表示与,区别是&&若第一个条件不满足,后面条件就不再判断。而&要对所有的条件都进行判断。

例1

public class Demo{

public static void main(String[] args) {
        int i = 4;
        if ((i++ > 6) & (i++ < 9)) {
            System.out.println(i);
            System.out.println("if为真");
        }
        System.out.println(i);
    }
}

运行结果为 : 6

因为 i 自加两次。

例2:

public class Demo{

public static void main(String[] args) {
        int i = 4;
        if ((i++ > 6) && (i++ < 9)) {
            System.out.println(i);
            System.out.println("if为真");
        }
        System.out.println(i);
    }
}

运行结果为 : 5

因为 i 自加一次。

 

同理,| 和 || 也是类似情况。

百度百科:

  短路或是JAVA语言中的一个逻辑运算符,记作||。所谓短路,即在第一项为true的情况下,不再进行第二项的判断。

  a||b:只有a与b都为false,结果才为false;有一个为true,结果为true。

简单的来说:

|| 和|| 若第一个条件不满足,后面条件就不再判断。而 | 要对所有的条件都进行判断。