2.8 本章小结
第二章练出的能力链:立规矩 → 记住东西 → 会算会判断 → 会分岔 → 会重复 → 会打包 → 会成排管理。本章不教新东西,只给复习装备:速查表、名坑回顾、毕业自检。
1. 七节串成一条线
2.1 基本语法 立规矩(代码格式 / 注释 / 标识符 / 六种常量)
↓
2.2 变量 学会"记"(三要素 / 赋值 = / 作用域 / 三条铁律)
↓
2.3 运算符 学会"算"(四大家族 / 整数除法砍小数 / boolean 上岗)
↓
2.4 选择结构 学会"分岔"(if 阶梯挨个问 / switch 对号入座)
↓
2.5 循环结构 学会"重复"(三要素 / for·while·do…while / break·continue)
↓
2.6 方法 学会"打包"(五部位 / 形参实参 / return 交货)
↓
2.7 数组 学会"成排"(索引从 0 / length / 遍历求和求最值)
2. 概念速查表(13 条,每条一句话)
| # | 概念 | 一句话 |
|---|---|---|
| 1 | 类 | 所有代码都必须住在类里,文件名 = public 类名 |
| 2 | 变量 | 内存格子贴标签:类型定格子、名字是标签、值可换 |
| 3 | = 与 == |
= 赋值(装进格子),== 判断(问等不等) |
| 4 | 整数除法 | int ÷ int 结果还是 int,小数直接砍掉(10/3=3) |
| 5 | % 取余 |
拿余数:判奇偶(n%2)、拆个位(n%10) |
| 6 | 字符串 + |
+ 一边是字符串就变拼接,从左到右 |
| 7 | if 阶梯 | 从上往下挨个问,命中即停——顺序就是逻辑 |
| 8 | switch | case 是入口、break 是出口、default 兜底;不收 long/double/boolean |
| 9 | 循环三要素 | 初始化(一次)· 条件(闸门)· 更新(每圈末尾),缺更新 = 死循环 |
| 10 | break / continue | 急刹走人 vs 跳过本轮接着转 |
| 11 | 方法 | 会做事的积木;返回值类型↔return、参数列表↔实参,两个必须配对 |
| 12 | 传参复制 | int 传的是值复制(改了不影响外面);数组传的是地址复制(真会变) |
| 13 | 数组 | 一排带编号的格子;编号从 0,length 不加括号,越界运行才炸 |
3. 代码模板速查(背下来能救命)
// 遍历三件套(数组的日常)
for (int i = 0; i < arr.length; i++) { ... }
// 累加器(sum 必须声明在循环外)
int sum = 0;
for (int i = 0; i < arr.length; i++) { sum += arr[i]; }
// 擂台求最大值(从 arr[0] 起步,不是 0!)
int max = arr[0];
for (int i = 1; i < arr.length; i++) { if (arr[i] > max) max = arr[i]; }
// 方法定义骨架
public static 返回值类型 方法名(参数列表) { ...; return 结果; }
4. 本章名坑回顾(8 个,全是将来真会撞的)
- if 后乱加分号——空语句吃掉 if 的身体,编译不报错结果不对(2.4)
- else if 乱序——大范围条件放前面,小范围永远轮不到(2.4)
- 忘写 break 穿透——case 只是入口标签(2.4)
- 循环忘 i++——条件恒成立,死循环;卡死 ■ 强停(2.5)
- 差一错误——
i < length和i <= length差一整个数(2.5/2.7) - do…while 结尾漏分号(2.5)
- void 想接结果——void 不交货(2.6)
- 越界访问——5 个格子最大编号 4,
arr[5]运行时炸(2.7)
第一章的坑是"环境/工具"层(.java.txt、GBK 编码、cmd 没重开);第二章的坑全是"逻辑"层——编译器越来越帮不上忙,程序能跑但结果不对才是真正的考验。
5. 毕业自检 5 题
a / b = 3(整数除法砍小数);a % b = 1(7÷2 余 1);"和:" + a + b = "和:72"(从左到右拼接)。想算加法必须 "和:" + (a + b)。
for:知道圈数(打印 1~100);while:不知道圈数(直到输对为止);do…while:必须先做一次(先显示菜单再问选择,至少跑一次)。
循环外:累加器正常累加,得正确总和;循环内:每圈被重置回 0,最后只留最后一圈的值(如 sum=0 写在循环体内,最终 sum 就是最后一个元素,不是总和)。作用域 + 生命周期的实战。
① 返回值类型 ↔ return:声明 int 却 return 3.5 或某分支漏 return → 编译错;② 参数列表 ↔ 实参:定义 add(int a, int b) 却调 add(3) 或 add(3, 5.0) → 编译错。
骨架:public static void stat(int[] scores) { int sum = scores[0]; int max = scores[0]; for (int i = 1; ...) { sum += scores[i]; if (...) max = ...; } 打印 sum、sum/(double)scores.length、max }——注意平均分要 (double) 强转,否则整数除法砍小数(2.3 的伏笔在这里收网)。
这一题串起变量、累加器、循环边界、擂台算法、方法定义、类型转换——写得出来,第二章就真的毕业了。写不出来也别慌,翻回对应小节看完再写一遍,直到能独立默出。
6. 下一步学什么
- ☐ 3.1 面向对象的思想 —— 第三章开课:类是图纸、对象是实物,把两章攒下的"变量+方法"装进同一个包装
- ☐ 动手作业:Q5 毕业大题独立完成;
Demo01~08八个练习建议连起来过一遍当复习
7. 相关笔记
- 2.7 数组 ← 上一篇:本章压轴
- 2.1 Java基本语法 ← 回头串线的起点
- 1.7 本章小结 ← 第一章的坑是工具层,第二章的坑是逻辑层
- 📇 Java基础 · 索引
- 🏠 返回主页