逻辑与(&)、短路与(&&)、逻辑或(|)、短路或(||)

逻辑与(&)、短路与(&&)、逻辑或(|)、短路或(||)的区别

  • &|:所有条件都会进行判断
  • &&:遇到结果为false时不再进行向下判断
  • ||:遇到结果为true时不再进行向下判断

逻辑与(&)

public class Hello {
    public static void main(String[] args) {
        int i = 3 ;
        boolean flag = (i>10) & (i++)<5;
        System.out.println(flag);
        System.out.println(i);
    }
}

由于&会判断所有的条件,所以i最后的值会加1

false
4

短路与(&&)

public class Hello {
    public static void main(String[] args) {
        int i = 3 ;
        boolean flag = (i>10) && (i++)<5;
        System.out.println(flag);
        System.out.println(i);
    }
}

&&遇到为false时不再进行判断。由于i>10为false,所以(i++)<5无论结果如何都不进行判断,总体结果为false,i的值依旧为3

false
3

逻辑或(|)

public class Hello {
    public static void main(String[] args) {
        int i = 3 ;
        boolean flag = (i>1) | (i++)<5;
        System.out.println(flag);
        System.out.println(i);  
    }
}

|两边结果都会判断,i会加1,结果为true,i=4

true
4

短路或(||)

public class Hello {
    public static void main(String[] args) {
        int i = 3 ;
        boolean flag = (i>1) || (i++)<5;
        System.out.println(flag);
        System.out.println(i);
    }
}

||遇到结果为true不会往下判断。i>1结果为true,(i++)<5不会进行判断,最后结果为true,i=3

true
3

猜你喜欢

转载自www.cnblogs.com/zjw-blog/p/11870259.html