- switch 语句由一个控制表达式和多个case标签组成。
- switch 控制表达式支持的类型有byte、short、char、int、enum(Java 5)、String(Java 7)。
- switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高。
- default在当前switch找不到匹配的case时执行。default并不是必须的。
- 一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。
switch 语句的语法结构:
switch (表达式) {
case 值1:
// 如果表达式的值等于值1,执行这里的代码块
break;
case 值2:
// 如果表达式的值等于值2,执行这里的代码块
break;
// ... 其他情况 ...
default:
// 如果表达式的值与任何 case 都不匹配,执行这里的代码块
break;
}
例如,我们可以使用 switch 语句来判断星期几:
int dayOfWeek = 3;
String dayName;
switch (dayOfWeek) {
case 1:
dayName = "星期一";
break;
case 2:
dayName = "星期二";
break;
case 3:
dayName = "星期三";
break;
// ... 其他情况 ...
default:
dayName = "未知";
break;
}
System.out.println(dayName);
使用注意事项
- 如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case。
- 如果 case 语句块中没有 break 语句时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输出。
- 如果当前匹配成功的 case 语句块没有 break 语句,则从当前 case 开始,后续所有 case 的值都会输出,如果后续的 case 语句块有 break 语句则会跳出判断。