Jupyter AI

15 运算符之逻辑运算符

📅 发表日期: 2024年8月10日

分类: Java 入门

👁️阅读: --

在上一章中,我们学习了关系运算符,它们用于比较两个值之间的关系,而这章我们将深入了解逻辑运算符。逻辑运算符用于组合多个布尔表达式,并返回一个布尔值(truefalse)。Java 语言中主要有三种逻辑运算符:与(&&)、或(||)和非(!)。

逻辑与(&&

逻辑与运算符 && 用于连接两个布尔表达式,当且仅当两个表达式都为 true 时,结果才为 true,否则为 false。我们来看一个简单的示例:

boolean a = true;
boolean b = false;
boolean result = a && b; // result 为 false

在这个例子中,result 的值将是 false,因为 bfalse。可以将逻辑与运算符视为一个"门",只有当所有输入均为"开启"时,输出才会为"开启"。

示例代码

我们可以使用一个完整的程序来演示逻辑与运算符的使用:

public class Main {
    public static void main(String[] args) {
        int age = 25;
        boolean hasLicense = true;

        // 检查是否满足驾驶条件
        boolean canDrive = (age >= 18) && hasLicense;
        
        if (canDrive) {
            System.out.println("可以驾驶!");
        } else {
            System.out.println("不能驾驶!");
        }
    }
}

在这个例子中,只有当年龄大于或等于 18 且拥有驾驶执照时,才能输出 "可以驾驶!"。

逻辑或(||

逻辑或运算符 || 用于连接两个布尔表达式,只要有一个表达式为 true,结果就为 true。如果两个表达式都为 false,结果才为 false。下面是一个简单的示例:

boolean c = true;
boolean d = false;
boolean result = c || d; // result 为 true

这里,result 的值将是 true,因为 c 的值是 true

示例代码

以下代码展示了逻辑或运算符的实际应用:

public class Main {
    public static void main(String[] args) {
        boolean isWeekend = true;
        boolean isHoliday = false;

        // 检查是否可以休息
        boolean canRest = isWeekend || isHoliday;
        
        if (canRest) {
            System.out.println("可以休息!");
        } else {
            System.out.println("需要工作!");
        }
    }
}

在这个例子中,只要是周末或假期,则可以休息。

逻辑非(!

逻辑非运算符 ! 是一个一元运算符,用于反转布尔值。若原值为 true,则结果为 false,反之亦然。来看一个简单的示例:

boolean e = true;
boolean result = !e; // result 为 false

示例代码

我们来看看逻辑非运算符的使用:

public class Main {
    public static void main(String[] args) {
        boolean isRainy = false;

        // 检查是否需要带伞
        if (!isRainy) {
            System.out.println("不需要带伞,今天是晴天!");
        } else {
            System.out.println("需要带伞,今天下雨!");
        }
    }
}

这里我们使用逻辑非运算符来判断是否需要带伞。如果 isRainyfalse,就会输出 "不需要带伞,今天是晴天!"。

逻辑运算符组合

有时,我们可能需要组合多个逻辑运算符来进行复杂的条件判断。例如:

public class Main {
    public static void main(String[] args) {
        boolean isStudent = true;
        boolean hasDiscountCard = false;

        // 检查是否可以享受折扣
        boolean canGetDiscount = isStudent || hasDiscountCard;
        
        if (canGetDiscount) {
            System.out.println("可以享受折扣!");
        } else {
            System.out.println("不能享受折扣!");
        }
    }
}

在这里,只有当学生身份为真或持有折扣卡时,用户才能享受到折扣。

注意事项

  1. 短路运算:逻辑与 && 和逻辑或 || 运算符都具有短路特性。即 A && BAfalse 时,B 不会被求值,结果直接为 false。同样地,A || BAtrue 时,B 不会被求值,结果直接为 true

  2. 使用时候的优先级:在组合多个运算符时,要注意运算符的优先级。可以使用小括号 () 来明确优先级,确保运算按照预期进行。

至此,我们已经完成了对逻辑运算符的学习。逻辑运算符在程序中用于条件判断,是控制程序流的重要工具。在下一章中,我们将继续探讨 if 条件语句,它是控制结构的核心组成部分。