CodeGym /课程 /JAVA 25 SELF /布尔类型 boolean 与逻辑运算

布尔类型 boolean 与逻辑运算

JAVA 25 SELF
第 3 级 , 课程 3
可用

1. 布尔数据类型:boolean

正如我们已经看到的,Java 有一个非常有用的运算符——if-else。当括号中的条件为真时,它执行第一段代码块;当条件为假时,执行第二段代码块。

为了方便处理可能为真或假的表达式,Java 提供了一个专门的类型——boolean。它最大的特点是,此类型的变量只能取两个值:true(真)和 false(假)。

不能给 boolean 类型的变量赋予其他任何值。编译器不会允许。

boolean 类型变量的示例:

boolean isAdult = true;
boolean hasMoney = false;
boolean 类型变量的声明示例

boolean 变量只有两个取值——truefalse。就这样!几乎就像测试结果一样:要么“通过”,要么“失败”。

2. 比较运算

那这个看似原始的类型有什么用呢?当我们构建逻辑表达式时,boolean 的真正威力就体现出来了。通常这些表达式由比较运算符得到。

运算符 含义 示例 结果
== 等于
a == b
truefalse
!= 不等于
a != b
truefalse
> 大于
a > b
truefalse
< 小于
a < b
truefalse
>= 大于或等于
a >= b
truefalse
<= 小于或等于
a <= b
truefalse

示例:

int age = 20;
boolean isAdult = age >= 18;   // true(20 大于或等于 18)
boolean isTeenager = age >= 13 && age < 18; // false(20 不小于 18)
boolean isEven = age % 2 == 0; // true(20 能被 2 整除)

这里 isAdult 会变为 true,因为 20 的确是“成年”的年龄。

要点 1:

由两个字符组成的运算符不能拆开写。


a < = 10
speed > = max
age = = 18
time ! = 0
不能这样写!运算符必须连写: <=>===!=

要点 2:

注意,没有运算符 =>=<:只有 <=>=。如果你写 a =< 3,你的代码将无法通过编译。

要点 3:

在 Java 中你不能写出 18 < age < 65 这种表达式。因为表达式 18 < age 的结果是 truefalse。而将 true 与数字(65)比较是不允许的——类型不同。

3. 逻辑运算

在 Java 中不能写 18 < age < 65 这样的表达式——它在语法上不正确,程序不会通过编译。

不过可以这样写:


(18 < age) I (age < 65)
含两个条件的逻辑表达式(俄语)

当然,实际中不会使用单词,而是使用逻辑运算符。Java 有三种逻辑运算符:AND(与)、OR(或)和 NOT(非)。

好消息:使用括号,可以构造任意复杂的逻辑表达式。
坏消息:在 Java 中不会使用 andornot 这些单词,而是沿用 C 系符号:&&||!

逻辑运算 期望 实际
(∧) and &&
(∨) or ||
(¬) not !

下面是一些在 Java 中使用逻辑运算符的示例:

表达式 读法 说明
(0 < a) && (a < 100)
(0 < a) and (a < 100) (0 < a) 且 (a < 100)
(!a) && (!b)
(not a) and (not b) (非 a) 且 (非 b)
!(!a || !b)
not((not a) or (not b)) 非((非 a)或(非 b))

4. 真值表

我们简要回顾一下这些逻辑运算。

AND 运算符

AND 运算符,也叫 ,记作 &&,又称合取、逻辑与、逻辑乘。

表达式 结果
true && true true
true && false false
false && true false
false && false false

OR 运算符

OR 运算符,也叫 ,记作 ||,又称析取、逻辑或、逻辑加。

表达式 结果
true || true true
true || false true
false || true true
false || false false

NOT 运算符

NOT 运算符,也叫 ,记作 !,又称取反。

表达式 结果
! true false
! false true

一些有用的恒等式:

表达式 结果
m && !m false
m || !m true
!(a && b) !a || !b
!(a || b) !a && !b

5. 逻辑运算示例:and、or、not

“与”(AND)运算,记作 &&

只有两个条件都为真,结果才为真。

int age = 16;
boolean hasTicket = true;
boolean canAttend = age >= 14 && hasTicket; // true(16 大于 14 且有票)

如果你已满 14 岁并且有票,就可以入场!

“或”(OR)运算,记作(||

只要有一个条件为真,结果就为真。

boolean isAdmin = false;
boolean isModerator = true;
boolean canEdit = isAdmin || isModerator; // true(只要二者之一为 true 就能编辑)

如果你是管理员或版主——请尽情点击按钮!

“非”(NOT)运算,记作(!

取反会把真变成假,反之亦然。

boolean isWeekend = false;
boolean shouldGoToWork = !isWeekend; // true(如果不是周末,就要上班)

如果不是周末,就该起床了!

组合:构建任意复杂的条件

可以随意组合逻辑运算(当然不要过度)。为了清晰,应该使用括号。

示例:

int age = 17;
boolean hasTicket = false;
boolean isVip = true;

boolean canGo = (age >= 18 && hasTicket) || isVip; // true,因为 isVip = true

逻辑:如果这个人已成年且持票,或者他是 VIP——就放行。若不是 VIP——只有成年且持票才放行。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION