流程控制
掌握 if-else、switch 表达式、for、while、break/continue
流程控制
程序不会总是直线运行——它需要根据条件选择不同的路径(if/switch),或者重复执行某些操作(for/while)。这就是流程控制。
学完本章你将: 掌握 if-else、switch 表达式、for/while 循环、break/continue。
if-else —— 条件分支
if 的条件必须是 boolean 类型——Java 不允许像 C 那样用 if(1)。
int score = 85;
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 80) {
System.out.println("良好"); // ← 命中这里
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
💡 else if 不是特殊语法——它只是
else { if(...) }的简写。多个条件按从上到下的顺序匹配,命中后跳过后续判断。
switch —— 多值匹配
Java 14+ 支持箭头语法,不需要写 break,更安全简洁:
// 新式 switch(推荐)
int day = 3;
String name = switch (day) {
case 1 -> "星期一";
case 2 -> "星期二";
case 3 -> "星期三";
default -> "未知";
};
System.out.println(name); // "星期三"
// 多个 case 共享结果
String fruit = "apple";
String category = switch (fruit) {
case "apple", "banana", "orange" -> "水果";
case "carrot", "potato" -> "蔬菜";
default -> "其他";
};
循环 —— for / while
// for:已知循环次数
for (int i = 0; i < 5; i++) { System.out.println(i); }
// 增强 for(for-each)——遍历数组和集合
int[] nums = {1, 2, 3, 4, 5};
for (int n : nums) { System.out.println(n); }
// while:未知次数,先判断
while (condition) { /* ... */ }
// do-while:至少执行一次
do { /* ... */ } while (condition);
// break 退出循环,continue 跳过当前
for (int i = 0; i < 10; i++) {
if (i == 5) break; // 到 5 就停
if (i % 2 == 0) continue; // 偶数跳过
System.out.println(i); // 只打印奇数
}
// Java 14+ 新式 switch(推荐) int day = 3; String dayName = switch (day) { case 1 -> "星期一"; case 2 -> "星期二"; case 3 -> "星期三"; case 4 -> "星期四"; case 5 -> "星期五"; default -> "周末"; }; System.out.println(dayName); // "星期三"
// 传统 switch(需要 break) String fruit = "apple"; String category; switch (fruit) { case "apple": case "banana": category = "水果"; break; default: category = "未知"; }
---
## for 循环
```java
// 普通 for
for (int i = 0; i < 5; i++) {
System.out.println("第" + i + "次");
}
// 增强 for(for-each)
int[] nums = {1, 2, 3, 4, 5};
for (int n : nums) {
System.out.println(n);
}
// 嵌套循环
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "×" + i + "=" + i * j + "\t");
}
System.out.println();
}
while 循环
// while:先判断
int count = 0;
while (count < 5) {
System.out.println("count = " + count);
count++;
}
// do-while:先执行一次
int num = 0;
do {
System.out.println(num);
num++;
} while (num < 3);
// break 与 continue
for (int i = 0; i < 10; i++) {
if (i == 5) break; // 退出循环
if (i % 2 == 0) continue; // 跳过本次
System.out.println(i);
}