Z
ZHANK
基础入门

流程控制

掌握 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)

java
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,更安全简洁:

java
// 新式 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

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); }

// 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 循环

java
// 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);
}