可以的,Java 的 switch 在 JDK 14+ 已经被大幅简化,主要有两个方向:
int day = 3;
String result;
switch (day) {
case 1:
result = "周一";
break;
case 2:
result = "周二";
break;
case 3:
result = "周三";
break;
default:
result = "未知";
}
int day = 3;
String result = switch (day) {
case 1 -> "周一";
case 2 -> "周二";
case 3 -> "周三";
default -> "未知";
};
优点:
breakcase 穿透问题int score = 85;
String level = switch (score / 10) {
case 10, 9 -> "优秀";
case 8 -> "良好";
case 7 -> "中等";
case 6 -> "及格";
default -> "不及格";
};
int num = 2;
int result = switch (num) {
case 1 -> 10;
case 2 -> {
int temp = 20;
yield temp * 2; // 返回结果
}
default -> 0;
};
| 对比项 | 传统 switch | switch 表达式 |
|---|---|---|
| break | 需要 | 不需要 |
| 返回值 | 不能 | 可以 |
| case 穿透 | 有风险 | 没有 |
| 写法 | 啰嗦 | 简洁 |
| 推荐度 | ⭐⭐ | ⭐⭐⭐⭐⭐ |
-> 是简化核心只能用传统 switch,但可以:
Map 替代简单映射Map<Integer, String> map = Map.of(
1, "周一",
2, "周二"
);
String result = map.getOrDefault(day, "未知");
如果你愿意,可以把你当前的 switch 代码贴出来,我可以帮你直接改成最简版本 ✅
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。