逻辑运算符

逻辑运算符 : &—逻辑与 | —逻辑或 !—逻辑非
  && —短路与 || —短路或 ^ —逻辑异或

  &和&& :两边都为true结果为true
  |和|| :两边有一个为true结果为true
  ! : 取反
  ^ : 相同为false,不同为true

说明:
  1.逻辑运算符运算的数据类型是boolean类型
  2.逻辑运算符的结果为boolean类型

 

public class LogicTest{

    public static void main(String[] args){
        
        boolean bo = true;
        boolean bo2 = false;
        System.out.println(bo & bo2);//false
        System.out.println(bo && bo2);//false
        System.out.println(bo | bo2);//true
        System.out.println(bo || bo2);//true
        System.out.println(bo ^ bo2);//true
        System.out.println(!bo2);//true

        System.out.println("-------------------------------");

        /*
            [面试题] & 和 &&的区别?|和||的区别?

            & 和 &&的区别?
                & : 左边的结果无论是true还是false右边的式子都会执行
                && : 左边的结果为true的时候右边的式子正常执行(因为右边的结果会影响最终结果)
                     左边的结果为false的时候右边的式子不执行(因为右边的结果不会影响最终结果)

            |和||的区别?
                | : 左边的结果无论是true还是false右边的式子都会执行
                || : 左边的结果为false的时候右边的式子正常执行(因为右边的结果会影响最终结果)
                     左边的结果为true的时候右边的式子不执行(因为右边的结果不会影响最终结果)
        */
        System.out.println("---------------------& 和 &&-----------------");
        boolean bool = false;

        int a = 5;
        if(bool & (++a > 2)){ //注意点 : ++有没有执行
            System.out.println("true");
        }
        System.out.println("bool = " + bool + "  a=" + a);


        int a2 = 5;
        if(bool && (++a2 > 2)){ //注意点 : ++有没有执行
            System.out.println("true");
        }
        System.out.println("bool = " + bool + "  a2=" + a2);

        System.out.println("---------------------| 和 ||-----------------");

        boolean bl = true;

        int n = 5;
        if(bl | (++n > 2)){ //注意点 : ++有没有执行
            System.out.println("true");
        }
        System.out.println("bl = " + bl + "  n=" + n);


        int n2 = 5;
        if(bl || (++n2 > 2)){ //注意点 : ++有没有执行
            System.out.println("true");
        }
        System.out.println("bl = " + bl + "  n2=" + n2);

    }
}

 

点赞