跳到内容

元数据卡

  • 前置知识:第2章 变量与类型;第3章 表达式
  • 预计时间:10 分钟
  • 阅读模式:高度专注
  • 完成标志:能正确使用关系运算符;能解释短路求值;能区分 ===

算术操作符让数字"动了起来"。但程序不能只会算数——它需要判断。

阿花问:"这袋苹果超过 20 个了吗?" 你需要 boolean——比较运算符逻辑运算符就是干这个的。


第一幕:超过 20 个了吗?

java
int apples = 25;

boolean isEnough = apples > 20;   // true
boolean exactlyTen = apples == 10; // false(双等号!)
boolean notZero = apples != 0;    // true
boolean atLeastFive = apples >= 5; // true
boolean lessThanTen = apples < 10; // false

语言:Java | 预期输出:true false true true false

关系操作符产生布尔值——这是第4章 if 的基础。

🔥 千万注意: == 是判断、= 是赋值。= 是动作,== 是疑问。


第二幕:两个条件一起看

老陈:"是会员 消费超过 100 铜币才能打 9 折。"

java
boolean isMember = true;
double spent = 150.0;

boolean canDiscount = isMember && spent > 100;  // true(AND)
boolean isPremium = isMember || spent > 200;    // true(OR)
boolean notMember = !isMember;                   // false(NOT)
操作符作用读法
&&两边都 true 才 true"且"
||一边 true 就 true"或"
!颠倒真假"非"

短路求值——编译器"偷懒"

java
int a = 5;
boolean result = (a > 10) && (a++ > 0);
System.out.println(a); // 5 —— a++ 没执行!

a > 10 已是 false——&& 知道"一边 false 整条就 false",右边 a++ 根本没执行。这叫短路求值

用它做判空保护:

java
obj != null && obj.getValue() > 5 // 左边不成立,右边不会执行

浮点数比较——永远别用 ==

java
System.out.println(0.1 + 0.2); // 0.30000000000000004

二进制浮点数的宿命。安全做法:

java
if (Math.abs(a - 0.3) < 1e-10) System.out.println("近似相等");

旅人笔记

关系操作符产生布尔值;逻辑操作符组合布尔值。= 是动作,== 是疑问。短路求值是判空好搭档。


下一站:练习与排障

整章操作符揉在一起实战——在 ch03-lab-operators.md

Built with VitePress | Software Systems Atlas