《Java 100 天进阶之路》第15篇:Java控制流程语句
第15篇:Java控制流程语句
📌 系列导航:《Java 100 天进阶之路》完整目录 |
⬅️ 上一篇:第14篇:Java final关键字详解 |
➡️ 下一篇:第16篇:禁止使用Lombok
一、核心知识点
- 条件分支:
if-else、switch-case - 循环:
for、while、do-while - 跳转:
break、continue、return switch新特性(Java 12+:箭头语法,表达式返回值)- 循环标签(带
break/continue跳出多层循环)
二、通俗讲解(1分钟开心学)
1. if-else
最常用的分支结构,满足条件执行某段代码。
2. switch-case
当有多个固定值选项时,比多个if-else更清晰。
- 传统写法:每个
case后需要break,否则会“穿透”(fall-through)。 - Java 12+箭头写法:
case 1 -> {},不需要break,更简洁。 - switch表达式:可以用
yield返回值。
3. 循环
for:知道循环次数时使用。while:先判断后执行,可能一次都不执行。do-while:先执行一次再判断,至少执行一次。
4. break、continue、return
break:跳出当前循环或switch。continue:跳过本次循环剩余语句,进入下一次迭代。return:结束整个方法。
5. 跳出多层循环
使用标签(label):
outer: for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == 1 && j == 1) break outer;
}
}
三、实操代码案例 + 场景说明
场景:写一个学生成绩等级转换器,并输出1到100之间的所有偶数。
public class ControlFlowDemo {
public static void main(String[] args) {
// if-else
int score = 85;
if (score >= 90) {
System.out.println("A");
} else if (score >= 80) {
System.out.println("B");
} else {
System.out.println("C");
}
// switch传统写法
int day = 3;
switch (day) {
case 1: System.out.println("周一"); break;
case 2: System.out.println("周二"); break;
default: System.out.println("其他");
}
// switch新特性(Java 12+)
String result = switch (day) {
case 1, 2, 3, 4, 5 -> "工作日";
case 6, 7 -> "周末";
default -> "无效";
};
System.out.println(result);
// for循环输出1到100的偶数,遇到66跳过,遇到88终止
for (int i = 1; i <= 100; i++) {
if (i % 2 != 0) continue; // 跳过奇数
if (i == 66) continue; // 跳过66
if (i == 88) break; // 终止循环
System.out.print(i + " ");
}
// do-while至少执行一次
int x = 10;
do {
System.out.println("至少执行一次,x=" + x);
x++;
} while (x < 5);
}
}
四、避坑要点
| 错误/误区 | 后果 | 正确做法 |
|---|---|---|
switch忘记break |
继续执行下一个case(穿透) |
要么写break,要么用箭头语法 |
浮点数用在switch中 |
编译错误 | switch支持int、char、String、enum等,不支持浮点 |
循环条件中误用赋值=而不是== |
无限循环或逻辑错误 | 常量放左边:5 == i避免误写 |
| 在循环中修改正在遍历的集合(非迭代器) | ConcurrentModificationException |
使用Iterator的remove或收集后统一删除 |
五、面试高频考点
Q1:break和continue的区别?
break跳出整个循环;continue跳过本次循环的剩余代码,进入下一次迭代。
Q2:如何跳出多层循环?
使用带标签的
break:outer: for(...){ for(...){ break outer; } }
Q3:switch支持哪些数据类型?
byte、short、char、int、String(Java 7+)、enum(Java 5+)。不支持long、float、double。
六、练习题
- 编程:用
switch实现判断月份天数(不考虑闰年),要求使用箭头语法。 - 代码填空:输出1到100之间所有能被3整除但不能被5整除的数,用
continue实现。 - 分析:以下代码输出什么?
for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (j == 1) break; System.out.print(i + "" + j + " "); } }
📊 你的学习进度
- 当前:第15篇 / 共44篇 · 第二阶段:核心语法与面向对象(第5~20篇)
- ✅ 已完成:第1~14篇
- 📖 正在学:第15篇
- ⏳ 待学习:第16~44篇
👉 📚 完整目录 & 学习指南 | 🔥 订阅本专栏,不错过每一篇
💡 本专栏每篇都包含:避坑表 + 面试高频考点 + 练习题。每天30分钟,100天拿offer!
👉 下一篇预告
《禁止使用Lombok》
内容简介:Lombok的工作原理、优缺点、继承场景下的equals陷阱、为什么大厂禁止使用、替代方案。
💡 学完这篇,你将不再盲目依赖Lombok,写出更安全的Java代码。
📌 《Java 100 天进阶之路 | 从入门到上岗就业》 每天一篇,建议收藏 + 关注,一起100天拿offer!
👉 点击关注我,更新后第一时间收到推送!
更多推荐




所有评论(0)