if-else 语句

根据条件判断执行不同的代码块。

if-else 示例
int score = 85;
String 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";
}

// 三元运算符:条件 ? 值1 : 值2
int a = 10, b = 20;
int max = (a > b) ? a : b;  // max = 20

switch 语句

当需要判断多个固定值时,switch 比多个 if-else 更清晰。

switch 示例
int day = 3;

switch (day) {
    case 1:
        System.out.println("星期一");
        break;  // 必须加 break,否则会"穿透"到下一个 case
    case 2:
        System.out.println("星期二");
        break;
    case 3:
        System.out.println("星期三");
        break;
    default:
        System.out.println("其他");
}

// Java 12+ 支持 switch 表达式(箭头语法 + 返回值)
String name = switch (day) {
    case 1 -> "星期一";
    case 2 -> "星期二";
    case 3 -> "星期三";
    default -> "其他";
};
⚠️ 穿透现象

如果某个 case 没有 break,程序会继续执行下一个 case 的代码,这叫做 "fall-through"。有时可以利用这个特性合并多个 case,但通常要小心使用。

课后练习

以下 switch 语句的输出是什么?

代码片段
int n = 2;
switch (n) {
    case 1:
        System.out.print("A");
    case 2:
        System.out.print("B");
    case 3:
        System.out.print("C");
    default:
        System.out.print("D");
}
A B
B BCD
C BD
D 编译错误