Java学习4
·
一、今日目标
- 学会
switch分支(替代多 if 判断) - 认识
do-while循环 - 彻底分清:
if/switch/for/while/do-while - 敲代码运行,巩固前三天内容
二、知识点极简讲解
-
switch适合:固定值判断(星期、月份、选项 1/2/3)不能写范围,只能判断等于某个固定数字 / 字符
-
do-while特点:先执行一次代码,再判断条件不管条件成不成立,至少跑 1 次
三、Day04 代码(新建类 → Day04 直接复制)
java
运行
public class Day04 {
public static void main(String[] args) {
// 1. switch 语句 固定值判断
int week = 3;
switch (week){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
default:
System.out.println("未知星期");
}
System.out.println("----------");
// 2. do-while 循环 先执行 再判断
int i = 1;
do {
System.out.println("do-while 循环:" + i);
i++;
}while (i <= 3);
}
}
四、关键必记(考试 + 写代码必用)
switch里必须加 break不加 break 会「穿透」,直接往下全部执行- 区别总结(背下来)
- 范围判断(分数、年龄)→ if / else if
- 固定选项(123、星期)→ switch
- 固定次数 → for
- 未知次数、反复尝试 → while
- 必须先执行一次 → do-while
五、操作步骤
- IDEA 新建 Java 类
Day04 - 粘贴代码
Ctrl+Alt+L格式化- 右键运行看结果
六、今日小作业(超简单)
用 switch 判断:定义变量 int num = 2case 1 输出:学习case 2 输出:敲代码case 3 输出:休息
关于case穿透
1. 先看结论
- 正常单独用 case:必须加 break
- 故意不加 break:叫「case 穿透」,可以合并多个选项
2. 举这个例子
java
运行
int week = 3;
switch (week){
case 1:
System.out.println("星期一");
case 2:
System.out.println("星期二");
case 3:
System.out.println("星期三");
break;
default:
System.out.println("未知");
}
现在:week = 3只走 case3 ✅ 没问题
如果:week = 1,且删掉 case1、case2 的 break执行顺序:
- 匹配到
case 1→ 打印星期一 - 没有 break,直接往下掉
- 自动执行
case 2→ 打印星期二 - 再往下
case 3→ 打印星期三
结果会一次性输出三行:
plaintext
星期一
星期二
星期三
✅ 这就是 case 穿透
3. 什么时候「故意删掉 break」?
用来合并条件,比如:
1、2、3 都输出「工作日」
java
运行
int day = 2;
switch (day){
case 1:
case 2:
case 3:
System.out.println("工作日");
break;
case 6:
case 7:
System.out.println("休息日");
break;
}
这里故意不写 break,就是正确写法。
4. 极简口诀(背住)
- 想要只执行自己这一条 → 必须加
break - 想要多个 case 共用一段代码 → 删掉
break用穿透 - 写作业 / 考试普通场景:每个 case 末尾必加 break
5. 你现在记住一句话
不加 break,代码不会停,会一直往下跑完所有 case。
case 后面的数字,必须和变量值 完全相等 才会命中
回到这段代码
java
运行
int day = 2;
switch (day){
case 1: // 2 == 1?不成立,直接跳过
case 2: // 2 == 2?成立!【入口在这里】
case 3: // 不会再判断,只是顺着往下走
System.out.println("工作日");
break;
}
流程拆死:
- 变量写死是
2 - 从上往下比对
- 遇到
case 2完全相等 → 锁定这个为执行入口 - 后面没有 break,直接往下穿透,执行共用代码
3. 关键区别(疑惑的点)
- 匹配只看:变量等于哪个 case
- 穿透不看判断,只是代码往下顺行
所以:day=2 → 绝对不会匹配 case1只是 case1 没代码、没 break,不影响而已
4. 终极一句话总结
- case = 固定值匹配,必须完全相等
- 先找对的那个 case 当入口
- 没有 break 就往下顺延执行,不再判断
更多推荐

所有评论(0)