Java switch語句

2019-10-16 22:21:13

switch語句用於測試變數與值列表的相等性。 每個值稱為一個case,並且針對每種情況檢查對應的變數值。

語法
增強for迴圈的語法是 -

switch(expression) {
   case value :
      // 執行語句塊
      break; // 可選

   case value :
      // 執行語句塊
      break; // 可選

   // 可以擁有任意數量的 case 語句。
   default : // 可選
      // 執行語句塊
}

以下是適用於switch語句的規則 -

  • switch語句中使用的變數只能是整數,可轉換為整數(如:byteshortchar),字串和列舉型別。
  • 可以在switch中包含任意數量的case語句。每個case後跟要與之比較的值和冒號。
  • case的值必須與switch中的變數具有相同的資料型別,並且必須是常數或文字。
  • switch的變數等於case中的值時,該case之後的語句將一直執行,直到達到break語句。
  • 當達到break語句時switch終止,控制流跳轉到switch語句塊後面的下一行程式碼。
  • 不是每個case都需要包含break語句。 如果沒有指定break語句,則控制流將落到後續case中,直到達到break語句。
  • switch語句可以有一個可選的default,它必須出現在switch語句的末尾。 當沒有任何case匹配時,執行default中的程式碼塊。default中不需要break語句。

Switch語句流程圖

範例1


public class SwitchExample {
    public static void main(String[] args) {
        // 為switch表示式宣告一個變數
        int number = 20;
        // Switch表示式
        switch (number) {
        // Case語句
        case 10:
            System.out.println("10");
            break;
        case 20:
            System.out.println("20");
            break;
        case 30:
            System.out.println("30");
            break;
        // Default case statement
        default:
            System.out.println("Not in 10, 20 or 30");
        }
    }
}

執行上面範例程式碼,得到以下結果:

20

範例2


public class SwitchExample {
    public static void main(String args[]) {
        // char grade = args[0].charAt(0);
        char grade = 'B';

        switch (grade) {
        case 'A':
            System.out.println("相當優秀!");
            break;
        case 'B':
        case 'C':
            System.out.println("一般優秀");
            break;
        case 'D':
            System.out.println("還不錯");
        case 'F':
            System.out.println("好像不太行");
            break;
        default:
            System.out.println("無效級別");
        }
        System.out.println("您的級別是:" + grade);
    }
}

執行上面範例程式碼,得到以下結果:

一般優秀
您的級別是:B