今天在使用switch控制语句的时候,关于case与default语句的是否继续执行还是模棱两可,所以写了这篇文章,让思路更加的明朗清晰些!
switch分支语句与if-else if-else类似,但是switch语句比后者更优越,它是根据条件表达式的值来判断执行的程序语句。switch效率上也比if语句更高,因为switch的表达式的值同时跟case值比较。
注意点1:对于switch后面的表达式的使用有一定的条件的,一般能使用的条件是具体的整型数值和一些有顺序的数列。而在java中,整型数值包括byte、char、short、int型,有顺序的数列例如枚举类型。故switch的表达式范围包括byte、char、short、int、enum等。
注意点2:default语句的执行,如果表达式的结果没有和case值相匹配的,则执行default的方法体,这里出现一种情况,就是default的方法体放在某些case的前面,如果default方法体内没有break,则会继续执行下面的case。再者,如果执行的case内的方法体,缺少break关键字,则一直执行下面的case直到遇到break或者到switch的结束大括号。所以如果避免switch的逻辑错误,每个case和缺省的default的方法体内在执行完之后要用break关键字来结束switch分支语句。