2.1 关系与逻辑运算符
程序不只是按顺序执行语句。很多时候,它需要先判断某个条件(condition)是否成立,再决定下一步要做什么。在 Java 中,条件的结果是 boolean,也就是 true 或 false。
关系运算符
关系运算符(relational operator)用于比较两个值。比较结果不是数字本身,而是 true 或 false。
Java 中常见的关系运算符包括:
<:小于
>:大于
<=:小于等于
>=:大于等于
==:等于
!=:不等于
注意
一个等号
= 是赋值(assignment),两个等号 == 才是比较(comparison)。java
int age = 17;
System.out.println(age < 18); // true
System.out.println(age == 18); // false
System.out.println(age != 18); // trueage = 17 的意思是把 17 赋值给变量 age。age == 18 的意思是比较 age 当前的值是否等于 18。
正在加载概念检查...
逻辑运算符
逻辑运算符(logical operator)用于连接多个布尔条件。它们的结果仍然是 true 或 false。
&&:多个条件都为真时,整体才为真。
||:多个条件中至少有一个为真时,整体就为真。
!:把真变成假,把假变成真。
逻辑运算符真值表
真值表(truth table)会把所有可能的输入组合列出来,帮助你看清逻辑运算符的规则。
&& 要求左右两边都为真,结果才为真。
| A | B | A && B |
|---|---|---|
| 真 | 真 | 真 |
| 真 | 假 | 假 |
| 假 | 真 | 假 |
| 假 | 假 | 假 |
|| 只要求左右两边至少有一边为真,结果就为真。
| A | B | A `\ | \ | ` B |
|---|---|---|---|---|
| 真 | 真 | 真 | ||
| 真 | 假 | 真 | ||
| 假 | 真 | 真 | ||
| 假 | 假 | 假 |
! 只作用在一个值上,会把结果反过来。
| A | ! A |
|---|---|
| 真 | 假 |
| 假 | 真 |
java
int age = 20;
boolean hasTicket = true;
System.out.println(age >= 18 && hasTicket); // true
System.out.println(age < 18 || hasTicket); // true
System.out.println(!hasTicket); // false如果你把条件读成自然语言,会更容易理解:age >= 18 && hasTicket 可以读成“年龄至少 18 岁,并且有票”。
正在加载概念检查...
组合条件
和数学写法不同,Java 不支持把比较“串起来”写。0 < age < 18 在 Java 中会编译错误,所以要写成两个条件用 && 连接。
java
int age = 16;
System.out.println(0 < age && age < 18); // true当条件变复杂时,建议先把每个小条件命名清楚,再组合起来。
java
int score = 85;
int attendance = 92;
boolean passed = score >= 60 && attendance >= 80;
boolean excellent = score >= 90 || attendance >= 95;
System.out.println(passed); // true
System.out.println(excellent); // false不要急着把所有条件写成一行。先把每个小条件命名清楚,程序会更容易读,也更容易排错。
正在加载概念检查...