Learn
Java/03-control-flow

流程控制

1. if / else

成绩分级
public class Main {
    public static void main(String[] args) {
        int score = 85;
        char grade;
        if (score >= 90)      grade = 'A';
        else if (score >= 80) grade = 'B';
        else if (score >= 70) grade = 'C';
        else if (score >= 60) grade = 'D';
        else                  grade = 'F';
        System.out.println("分数 " + score + " -> " + grade);
    }
}

2. 三元运算符

String status = (age >= 18) ? "成年" : "未成年";

3. switch(Java 14+ 箭头语法)

switch 箭头语法
public class Main {
    public static void main(String[] args) {
        int day = 3;
        String name = switch (day) {
            case 1, 2, 3, 4, 5 -> "工作日";
            case 6, 7          -> "周末";
            default            -> "无效";
        };
        System.out.println(day + " -> " + name);
    }
}
💡箭头语法不再需要 break

Java 14 引入 case x -> ...,每个 case 只执行匹配的分支,不需要 break。传统 case x: ... break; 仍可用。

4. for 循环

for 循环
public class Main {
    public static void main(String[] args) {
        // 标准 for
        for (int i = 0; i < 5; i++) {
            System.out.print(i + " ");
        }
        System.out.println();
 
        // 增强 for(for-each)
        int[] nums = {10, 20, 30};
        for (int n : nums) {
            System.out.print(n + " ");
        }
        System.out.println();
    }
}

5. while 与 do-while

while vs do-while
public class Main {
    public static void main(String[] args) {
        // while:先判断再执行
        int i = 0;
        while (i < 3) {
            System.out.print(i++ + " ");
        }
        System.out.println();
 
        // do-while:先执行一次再判断
        int j = 10;
        do {
            System.out.println("至少执行一次: j = " + j);
        } while (j < 3);
    }
}

6. break 与 continue

break / continue / 带标签 break
public class Main {
    public static void main(String[] args) {
        // 找第一个 7 的倍数
        for (int n = 1; n < 100; n++) {
            if (n % 7 == 0) {
                System.out.println("找到: " + n);
                break;
            }
        }
 
        // 跳过偶数
        for (int n = 1; n <= 10; n++) {
            if (n % 2 == 0) continue;
            System.out.print(n + " ");
        }
        System.out.println();
 
        // 带标签的 break(跳出多层循环)
        outer:
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                if (i == 1 && j == 1) break outer;
                System.out.printf("(%d,%d) ", i, j);
            }
        }
        System.out.println();
    }
}

7. 实战:九九乘法表

九九乘法表
public class Main {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.printf("%d*%d=%-3d", j, i, j * i);
            }
            System.out.println();
        }
    }
}

🎯 练习

FizzBuzz
// 任务:打印 1~15,Fizz/Buzz/FizzBuzz
// 3 倍数 -> Fizz;5 倍数 -> Buzz;3 和 5 公倍数 -> FizzBuzz
// 期望:
//   1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz
 
public class Main {
    public static void main(String[] args) {
        // 补全代码
    }
}

小结

  • ✅ if/else if/else
  • ✅ Java 14+ switch (x) { case a -> ... }
  • ✅ for / 增强 for / while / do-while
  • ✅ break 可带标签跳出多层循环
  • ✅ continue 跳过本轮

下一章 方法。