Java中Switch Case用法:语法详解与实战案例

Java中Switch Case用法:语法详解与实战案例

# 1. Switch Case语法基础

Switch语句是Java中的多分支选择结构,用于替代复杂的if-else嵌套,提升代码可读性。其基本语法如下:

“`java
switch (expression) {
case value1:
// 代码块1
break;
case value2:
// 代码块2
break;
default:
// 默认代码块
}
“`

# 1.1 关键规则

expression:支持byte、short、int、char、String(Java 7+)、枚举(Java 5+)
case值必须唯一,且为常量(不可用变量)
break:终止当前case执行(若省略会继续执行下一个case,称为”case穿透”)
default:当无匹配case时执行(非必须)

# 2. 新特性:Switch表达式(Java 12+)

Java 12引入箭头语法和返回值特性,简化代码:

“`java
String dayType = switch (day) {
case “MON”, “TUE”, “WED”, “THU”, “FRI” -> “工作日”;
case “SAT”, “SUN” -> “周末”;
default -> throw new IllegalArgumentException(“无效输入”);
};
“`

重点改进
– 支持多case合并(逗号分隔)
– 使用`->`替代`:`,无需`break`
– 可直接返回结果(需`yield`关键字处理复杂逻辑)

# 3. 实战案例

# 3.1 经典案例:成绩等级判断

“`java
public class GradeSystem {
public static void main(String[] args) {
char grade = ‘B’;

switch (grade) {
case ‘A’:
System.out.println(“优秀“);
break;
case ‘B’:
System.out.println(“良好“); // 输出这里
break;
case ‘C’:
System.out.println(“及格”);
break;
default:
System.out.println(“不及格”);
}
}
}
“`

# 3.2 穿透特性应用:月份天数计算

“`java
int month = 2;
int year = 2023;
int days = 0;

switch (month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
days = 31;
break;
case 4: case 6: case 9: case 11:
days = 30;
break;
case 2:
days = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ? 29 : 28;
break;
default:
System.out.println(“无效月份”);
}
System.out.println(“天数: ” + days); // 输出: 天数: 28
“`

# 3.3 Java 14+模式匹配(预览特性)

“`java
Object obj = “Hello”;
String result = switch (obj) {
case Integer i -> “整数: ” + i;
case String s && s.length() > 5 -> “长字符串“; // 条件判断
case String s -> “字符串: ” + s;
default -> “未知类型”;
};
“`

# 4. 最佳实践

1. 优先使用新语法(Java 12+)提升简洁性
2. 始终添加default处理意外情况
3. 避免过度穿透(必要时添加注释说明)
4. 复杂逻辑拆分为方法,保持switch结构清晰

通过合理使用switch-case,可显著提升代码可维护性执行效率

原文链接:https://www.g7games.com/60890.html 。如若转载,请注明出处:https://www.g7games.com/60890.html

(0)
G7G7
上一篇 2025年7月18日 下午9:16
下一篇 2025年7月18日 下午9:16

相关推荐

联系我们

QQ:726419713
关注微信