基本语法
switch(表达式){
case 常量值1:{
语句1;
break;
}
case 常量值2:{
语句2;
break;
}
...
default:{
内容都不满足时执行语句;
break;
}
}
【
注意事项
】
多个
case
后的常量值不可以重复
switch
的括号内只能是以下类型的表达式:
基本类型:
byte
、
char
、
short
、
int
,注意不能是
long
类型
引用类型:
String
常量串、枚举类型
double num = 1.0;
switch(num) {
case 1.0:
System.out.println("hehe");
break;
case 2.0:
System.out.println("haha");
break;
}
// 编译出错
Test.java:4: 错误: 不兼容的类型: 从double转换到int可能会有损失
switch(num) {
^
1 个错误
break
不要遗漏
,
否则会失去
"
多分支选择
"
的效果
int day = 1;
switch(day) {
case 1:
System.out.println("星期一");
// break;
case 2:
System.out.println("星期二");
break;
}
// 运行结果
星期一
星期二
switch
不能表达复杂的条件
// 例如: 如果 num 的值在 10 到 20 之间, 就打印 hehe
// 这样的代码使用 if 很容易表达, 但是使用 switch 就无法表示.
if (num > 10 && num < 20) {
System.out.println("hehe");
}
switch
虽然支持嵌套
,
但是很丑,一般不推荐
~
int x = 1;
int y = 1;
switch(x) {
case 1:
switch(y) {
case 1:
System.out.println("hehe");
break;
}
break;
case 2:
System.out.println("haha");
break;
}
代码的美观程度也是一个重要的标准
.
毕竟这是
看脸的世界
![](https://img-blog.csdnimg.cn/direct/35e3672e016e47a9a7f70b3e8c6df837.png)
综上, 我们发现, switch 的使用局限性是比较大的