在 Java 中,switch 开关(选择结构)主要用于根据一个变量的值,执行不同的代码分支。下面从基本语法、支持的类型、示例、注意事项几个方面说明。
switch (表达式) {
case 值1:
// 代码
break;
case 值2:
// 代码
break;
default:
// 默认代码
}
int day = 3;
switch (day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
default:
System.out.println("未知日期");
}
byteshortcharintenum(枚举)String(Java 7+)❌ 不支持:
longfloatdoublebooleanString color = "red";
switch (color) {
case "red":
System.out.println("红色");
break;
case "blue":
System.out.println("蓝色");
break;
default:
System.out.println("未知颜色");
}
如果不写 break,会发生 case 穿透(fall-through):
int num = 1;
switch (num) {
case 1:
System.out.println("1");
case 2:
System.out.println("2");
default:
System.out.println("default");
}
输出:
1
2
default
✅ 一般建议每个 case 都加 break
int day = 3;
String result = switch (day) {
case 1 -> "星期一";
case 2 -> "星期二";
case 3 -> "星期三";
default -> "未知";
};
System.out.println(result);
✅ 优点:
breakint score = 85;
String level = switch (score / 10) {
case 10, 9 -> "优秀";
case 8 -> {
yield "良好";
}
case 7 -> "中等";
default -> "不及格";
};
System.out.println(level);
enum Season {
SPRING, SUMMER, AUTUMN, WINTER
}
Season season = Season.SUMMER;
switch (season) {
case SPRING -> System.out.println("春天");
case SUMMER -> System.out.println("夏天");
case AUTUMN -> System.out.println("秋天");
case WINTER -> System.out.println("冬天");
}
❌ 忘记 break
❌ case 值重复
❌ switch 表达式结果为 null(String 时)
String s = null;
switch (s) { // NullPointerException
}
✅ 适合:
if-else❌ 不适合:
如果你愿意,我可以:
switch 和 if-else你用的是什么 Java 版本?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。