package com.lovecoding.day02;


/**
 * @author WanJl
 * @version 1.0
 * @title Demo06
 * @description 逻辑运算符
 * @create 2026/7/8
 */
public class Demo06 {

    public static void main(String[] args) {
        /*
            逻辑运算符
            &   与       布尔表达式   &  布尔表达式
                |- 符号左右的两边的布尔表达式的结果如果同时为true，则最终运算结果是true，否则就是false
            |   或
                |-符号左右的两边的布尔表达式的结果如果同时为false，则最后的运算结果是false，否则就是true
            !   非 取反
            &&  短路与
            ||  短路或
            ^   异或  符号左右两边的布尔表达式如果相同就返回false，不同就返回true
         */
        // & 运算符
        boolean b1= 15>3 & 7==6;
        System.out.println(b1);
        System.out.println(true&true);  //true
        System.out.println(true&false);  //false
        System.out.println(false&true);  //false
        System.out.println(false&false);  //false
        System.out.println("--------------------------------------");
        // | 或运算符
        boolean b2= 15>3 | 7==6;
        System.out.println(b2);
        System.out.println(true|true);  //
        System.out.println(true|false);  //
        System.out.println(false|true);  //
        System.out.println(false|false);  //

        System.out.println("--------------------------------------");
        // ! 取反
        boolean b3=!(15>3);
        System.out.println(b3);
        System.out.println(!true);
        System.out.println(!false);

        // &&  短路与
        // 作用跟 & 运算符相同，只不过 如果符号左边的表达式结果是false，右边就不运算了，直接返回false
        // ||  短路或
        // 作用跟 | 运算符相同，只不过 如果符号左边的表达式结果是true，右边就不运算了，直接返回true

        System.out.println("--------------------------------------");
        // ^ 异或

        System.out.println(true^true);  //false
        System.out.println(true^false);  //true
        System.out.println(false^true);  //true
        System.out.println(false^false);  //false


        // 三目运算符
        // 符号左右两侧都有操作数，的运算符 就是双目运算符
        // ++  --   就属于单目运算符
        /*
            布尔表达式 ? 表达式1 : 表达式2
            表达式1、表达式2 可以是任何值或表达式
            如果布尔表达式 的结果是 true，就执行表达式1，否则就执行表达式2
         */
        System.out.println(15>3?3>6?17:15:"假");
/*
     1. 定义两个整数 a 和 b，使用算术运算符计算并输出 a + b、a - b、a * b、a / b、a % b。
     2. 定义一个整数，使用三目运算符判断它是奇数还是偶数，输出"奇数"或"偶数"。
     3. 定义三个整数，使用三目运算符找出并输出其中的最大值。
     4. 定义一个年份，使用逻辑运算符判断是否为闰年（能被4整除且不能被100整除，或能被400整除），输出true或false。
     5. 定义一个整数 score（0-100），使用嵌套三目运算符输出等级：score >= 90 为 "A"，score >= 60 为 "B"，否则为 "C"。
     6. 定义一个整数，使用逻辑运算符判断它是否满足：大于10 且 小于100，输出true或false。
     7. 定义一个字符，使用比较运算符判断它是否为大写英文字母（'A'到'Z'之间），输出true或false。
     8. 已知 int a = 5; int b = 5; 分别执行 int x = a++; 和 int y = ++b; 后，输出 x、a、y、b 的值，
     并说明前置和后置自增的区别。
     9. 定义一个三位正整数，使用算术运算符拆分出它的个位、十位、百位，按格式输出。
    10. 定义三个边长 a、b、c，使用比较运算符和逻辑运算符判断能否构成三角形（任意两边之和大于第三边），输出true或false。

 */

    }
}
