Java中的switch分支注意点

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语句;