package com.loveCoding.j20250426_java_basic;

/**
 * @author WanJl
 * @version 1.0
 * @title Demo05
 * @description
 * @create 2025/4/26
 */
public class Demo05 {
    public static void main(String[] args) {
        //& 与(AND)运算符，只有符号左右两边的布尔表达式结果同时为true的时候，
        // 真正的运算结果才是true，否则都是false
        System.out.println(15>3&16>7); //true&true      true
        System.out.println(15>3&16==7);  //true&false   false
        System.out.println(15==3&16>7); //false&true    false
        System.out.println(15==3&16==7); //false&false  false
        //短路方式：
        //短路方式和非短路方式效果是一样的，只不过如果短路与运算符，左边运算结果为false，则右边不运算了，直接返回false
        System.out.println(15>3&&16>7); //true&&true      true
        System.out.println(15>3&&16==7);  //true&&false   false
        System.out.println(15==3&&16>7); //false&&true    false
        System.out.println(15==3&&16==7); //false&&false  false


        // | 与(OR)运算符，只有符号左右两边的布尔表达式结果同时为false的时候，
        // 真正的运算结果才是false，否则都是true
        System.out.println(15>3|16>7); //true|true      true
        System.out.println(15>3|16==7);  //true|false   true
        System.out.println(15==3|16>7); //false|true    true
        System.out.println(15==3|16==7); //false|false  false
        //短路方式：
        //短路或和非短路或结果是一样的，只不过如果短路或运算符，左边运算结果为true，则右边不运算了，直接返回true
        System.out.println(15>3||16>7); //true||true      true
        System.out.println(15>3||16==7);  //true||false   true
        System.out.println(15==3||16>7); //false||true    true
        System.out.println(15==3||16==7); //false||false  false

        // ^ 异或运算符，符号左右两边的布尔表达式的结果如果相同，
        //真正的运算结果就是false，不同就是true
        System.out.println(15>3^16>7); //true^true      false
        System.out.println(15>3^16==7);  //true^false   true
        System.out.println(15==3^16>7); //false^true    true
        System.out.println(15==3^16==7); //false^false  false

        // ! 逻辑非，!a，结果和a的结果正好相反
        System.out.println(!(15>3)); //!true      false
        System.out.println(!(16==7));  //!false   true

    }
}
