Java中的switch分支是属于Java中的条件判断中的一种,另一大类属于if...else这种,下面说一下switch分支的几个特点
一、格式
switch(值){ case 值1 : 语句01; break; case 值2 : 语句02; break; ...... default : 语句n; }
①、case后面接的值,是一个具体的值 :数字、字符、字符串
②、结束的标志:一种是遇到break语句,一种是代码执行到最后位置,也就是switch代码的末尾
二、case穿透
当case语句中,没有break时,程序不判断下一句case的值,直接执行下一句case的代码语句,直至遇到break停止
package com.test.shuzu; public class Switch02 { public static void main(String[] args) { switch_02(); } private static void switch_02() { int a = 'S'; switch (a) { case 'S': System.out.println("S"); case 's': System.out.println("s"); case 'a': System.out.println("a"); default: System.out.println("默认"); } } }
执行结果:
S
s
a
默认
三、default语句
default语句在整个switch分支中,有它的特殊性。
首先,default语句可以不放在最后,可以放在switch中的任意位置,但是要注意,如果default如果在其他位置,要加break语句,否则会产生case穿透现象。
其次,default如果在最后,就无需加break;
然后,default语句可以看成是另一种case语句,当其他case不符合条件时,就执行default语句
package com.test.shuzu; public class Switch01 { public static void main(String[] args) { switch_01(); } private static void switch_01() { int a = 'S'; switch (a) { case 's': System.out.println("s"); break; case 'a': System.out.println("a"); break; default: System.out.println("默认"); } } }
执行结果为:默认
最后,无论default的位置在哪,代码总是先执行所有的case语句,最后执行的default语句;