switch基本语法结构如下
switch (表达式){
case 目标值1:
执行语句1
break;
case 目标值2:
执行语句2
break;
......
case 目标值n:
执行语句n
break;
default:
执行语句n+1
break;
}
- 表达式可以是byte、short、char、int、enum、String类型
- case穿透现象: switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。如果没有break语句,那么就会从表达式的值相匹配的case标签处开始执行,一直执行到switch语句的末尾,这种从其中的一个case处开始,忽略后面的值的匹配,直接运行case的内容的现象就是穿透的现象
- default:默认运行的语句
public class SwitchPractice {
public static void main(String[] args) {
int a=1;
switch (a){
case 0:
System.out.println("这是第一行");
case 1:
System.out.println("a的值是"+a);
case 2:
System.out.println("这是第三行");
default:
System.out.println("看一下默认情况输不输出");
case 3:
System.out.println("再试试这个");
}
}
}
输出:
a的值是1
这是第三行
看一下默认情况输不输出
再试试这个
在switch表达式中使用enum
判断enum中元素的地址是不是一样吧相当于。一开始是以为判断元素的值是不是相同,试了一会儿,都没成功。
private static void testEnum(en tv){
switch (tv){
case n1:
System.out.println("这个和n1是一样的");
}
}
public static void main(String[] args) {
/*
测试在switch中使用enum
*/
en fn1;
fn1=en.n1;
testEnum(fn1);
}
输出:这个和n1是一样的