元数据卡
- 前置知识:第2章 变量与类型;第3章 表达式
- 预计时间:12 分钟
- 阅读模式:高度专注
- 完成标志:能准确预测整数除法和取余结果;能区分
++前置与后置
老陈的铁匠铺里摆了一排工具:+、-、*、/、%。他说:"算术操作符最常用,但'除法'和'取余'上最容易栽跟头。"
第一幕:账本上的加加减减
一切正常。但整数除法有坑:
java
int a = 10;
int b = 3;
int quotient = a / b; // 3 ← 等等!!不应该是 3.333 吗?注意了:10 / 3 在 Java 里等于 3,不是 3.333。两个 int 做除法,结果还是 int——小数部分直接截断。
那真要小数怎么办?让一边变 double:
java
double exact = 10.0 / 3; // 3.3333333333333335当 int 和 double 一起运算时,Java 自动把 int 提升成 double——隐式类型提升。
取余操作符 %——高频实战工具
% 不取商,取余数。真实代码里高频出场:
java
// 判断奇偶
int n = 7;
boolean isOdd = n % 2 == 1; // true
// 分页——第 23 条数据在第几页?(每页 10 条)
int pageIndex = 23 / 10; // 2
int positionInPage = 23 % 10; // 3
// 循环取色
int colorIndex = counter % 3;语言:Java 预期输出:true、2、3
自增 ++ 与自减 --
工程铁律:绝不在复杂表达式中使用
++/--请单独成行使用。
java
int a = 5;
int b = a++; // b = 5, a = 6(先取值,再加1)
int c = ++a; // c = 7, a = 7(先加1,再取值)记忆口诀:++a 先加再用,a++ 先用再加。
java
sold++; // ✓ 单独一行整数除法陷阱
java
double avg = (5 + 6 + 7) / 3; // 6.0(先整数除法得 6,再转 double)想精确小数:
java
double avg = (5 + 6 + 7) / 3.0; // 6.0 ✓ —— 3.0 拉成 double 除法经验法则:除数或被除数有一个是浮点数,整个除法就是浮点除法。
旅人笔记
五种算术:+ - * / %。整数除法截断是第一坑——想要小数,让一边变浮点数。取余 % 的实战场景:判奇偶、分页、循环。++/-- 单独成行用。
→ 下一站:比较与逻辑运算符
程序不光要算数——它要做判断。apples > 20 是真是假?短路求值怎么"偷懒"?在 ch03-operators-comparison.md。