1. 程式人生 > >java switch..case語句

java switch..case語句

語法:

switch(變數){
case 變數值1:
    程式碼塊1;
    break;
case 變數值2:
    程式碼塊2;
    break;
  ...
case default:
    程式碼塊d;
    break;
}

switch 變數型別:short、char、byte、enum、String型別

使用switch語句時,可能有一下幾種情形:

(1)每一個case語句都有break

        int a = 5;
        switch(a){
        case 0:
            System.out.println("0");
break; case 1: System.out.println("1"); break; case 2: System.out.println("2"); break; default: System.out.println("default"); break;//這個break加不加都一樣。 }

系統自動從上到下的進行掃描,如果有匹配的case,則輸出對應的程式碼塊,如果沒有匹配的case,則輸入最後一個default的程式碼塊。

(2)每一個case語句都沒有break

        int i = 5;
        switch(i){
        case 0:
            System.out.println("0");
        case 1:
            System.out.println("1");
        case 2:
            System.out.println("2");
        default:
            System.out.println("default");
        }

系統自動的從上到下進行掃描,如果沒有匹配到值,則輸出default;如果匹配到了值,則會輸出這個case一直到default。比如上面這個程式碼的i=1的時候,會輸出1 2 default.

(3)有一些case語句有break,一些沒有

  int i = 0;
        switch(i){
        case 0:
            System.out.println("0");
        case 1:
            System.out.println("1");
            break;
        case 2:
            System.out.println("2");
        default:
            System.out.println("default");
        }

如果匹配到的case 在break 前面,則從匹配到的case一直執行到break 這一行的程式碼塊;如果匹配到的case在break後面,則會從匹配到的case 一直執行到default;如果都沒匹配到,則輸出default。
例如上面這個程式碼的結果就是 0 1

總結:因此switch case執行時,一定會先進行匹配,匹配成功返回當前case的值,再根據是否有break,判斷是否繼續輸出,或是跳出判斷。