/**
 * @author WanJl
 * @version 1.0
 * @title Demo05
 * @description 逻辑运算符
 * @create 2026/7/14
 */
public class Demo05 {
    public static void main(String[] args) {
        /*
        逻辑运算符 操作的数 要么是布尔表达式  要么是布尔值。
            &       与           true&false      false
            |       或           true|false      true
            !       非           !true           false
            &&      短路与        true&&false     false
            ||      短路或        true||false     true
            ^       异或          true^false      true


         */
        //& 与：符号左右两侧的布尔表达式结果如果都是true，则运算结果为true，否则就是false
        System.out.println(true&true);  //true
        System.out.println(true&false); //false
        System.out.println(false&true); //false
        System.out.println(false&false); //false
        // |或：符号左右两侧的布尔表达式结果如果都是false，则运算结果为false，否则就是true
        System.out.println(true|true);  //true
        System.out.println(true|false); //true
        System.out.println(false|true); //true
        System.out.println(false|false); //false
        // && 短路与 ，作用和&相同，只不过，符号左边如果是false，右边就不运算了，直接返回false
        System.out.println(true&&true);  //true
        System.out.println(true&&false); //false
        System.out.println(false&&true); //false
        System.out.println(false&&false); //false

        // || 短路或，作用和|或相同，只不过，符号左边如果是true，右边就不运算了，直接返回true
        System.out.println(true|true);  //true
        System.out.println(true|false); //true
        System.out.println(false|true); //true
        System.out.println(false|false); //false
        // !非 也就是取反，它也是单目运算符， 符号右侧的布尔表达式的结果如果是true，运算后就是false
        System.out.println(!true);  //false
        System.out.println(!false); //true

        // ^异或 符号左右两侧的布尔表达式如果相同，就返回false，不同返回true
        System.out.println(true^true);  //false
        System.out.println(true^false); //true
        System.out.println(false^true); //true
        System.out.println(false^false); //false

        /*
            课堂练习题：
                定义一个成绩变量 score，判断：
                如果score大于等于90并且小于等于100，就输出优秀
                如果score大于等于80并且小于90，就输出良好
                如果score大于等于70并且小于80，就输出中等
                如果score大于等于60并且小于70，就输出及格
                如果score大于等于0并且小于60，就输出不及格
                在此范围外的任何值，都输出 分数错误。
            知识点：
                if...else.语句
                比较运算符
                逻辑运算符
         */
        double score=85.3;
        if (score>=90&&score<=100){
            System.out.println("优秀");
        }else if(score>=80&&score<90){
            System.out.println("良好");
        }else if(score>=70&&score<80){
            System.out.println("中等");
        }else if(score>=60&&score<70){
            System.out.println("及格");
        }else if(score>=0&&score<60){
            System.out.println("不及格");
        }else {
            System.out.println("成绩错误");
        }


    }
}
