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是一样的