1. 程式人生 > >【Java基礎知識】switch表示式、case穿透、default、switch結束條件

【Java基礎知識】switch表示式、case穿透、default、switch結束條件

switch(表示式) {
case 1:
      語句體1;
break;
case 2:
      語句體2;
break;
...
default:
      語句體n+1;
break;
}
1、格式解釋說明:
switch表示式:可以是byte,short,int,char
JDK5以後可以是列舉
JDK7以後可以是字串
case:後面的值就是要和表示式進行比較的值
break:表示程式到這裡中斷,跳出switch語句
default:如果所有的情況都不匹配,就執行這裡,相當於if語句中的else

2、執行流程:

A:首先計算表示式的值
B:和每一個case進行匹配,如果有就執行對應的語句體,看到break就結束。
C:如果沒有匹配,就執行

default的語句體n+1

3、注意事項:

A:case後面只能是常量,不能是變數,而且,多個case後面的值不能出現相同的值
B:default可以省略嗎?
可以省略,但是不建議,因為它的作用是對不正確的情況給出提示。
C:break可以省略嗎?
可以省略,但是結果可能不是我們想要的。
會出現一個現象:case穿透最終我們建議不要省略
D:default一定要在最後嗎?

不是,可以在任意位置。但是建議在最後。

E:switch語句的結束條件a:遇到break就結束了b:執行到末尾就結束了

case案例演示:

<pre name="code" class="java">import java.util.Scanner;
class SwitchTest4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入月份(1-12):");
        int month = sc.nextInt();        
        //case穿透
        switch(month) {
            case 1:
            case 2:
            case 12:
                System.out.println("冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;
            default:
                System.out.println("你輸入的月份有誤");
        }
    }
}