Java switch case 語句


switch case 語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支。

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

 

class Test {
   public static void main(String args[]){
      //char grade = args[0].charAt(0);
      char grade = 'C';
 
      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);
   }
}

編譯結果: 良好

                你的等級是C。

switch case 語句有如下規則:

switch 語句中的變量類型可以是: byte、short、int 或者 char。從 Java SE 7 開始,switch 支持字符串 String 類型、枚舉了,同時 case 標簽必須為字符串常量或字面量。

switch 語句可以擁有多個 case 語句。每個 case 后面跟一個要比較的值和冒號。

case 語句中的值的數據類型必須與變量的數據類型相同,而且只能是常量或者字面常量。

當變量的值與 case 語句的值相等時,那么 case 語句之后的語句開始執行,直到 break 語句出現才會跳出 switch 語句。

當遇到 break 語句時,switch 語句終止。程序跳轉到 switch 語句后面的語句執行。case 語句不必須要包含 break 語句。如果沒有 break 語句出現,程序會繼續執行下一條 case 語句,直到出現 break 語句。

switch 語句可以包含一個 default 分支,該分支必須是 switch 語句的最后一個分支。default 在沒有 case 語句的值和變量值相等的時候執行。default 分支不需要 break 語句。

如果 case 語句塊中沒有 break 語句時,JVM 並不會順序輸出每一個 case 對應的返回值,而是繼續匹配,匹配不成功則返回默認 case。

public class Test {
   public static void main(String args[]){
      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");
      }
   }
}

如果當前匹配成功的 case 語句塊沒有 break 語句,則從當前 case 開始,后續所有 case 的值都會輸出,如果后續的 case 語句塊有 break 語句則會跳出判斷。

public class SwitchDemo02 {
    public static void main(String[] args) {
        int week = 2;
        switch (week) {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            // 當 week 滿足值 1、2、3、4、5 中任意一個時,處理方式相同
            System.out.println("今天是工作日");
            break;
        case 6:
        case 7:
            // 當 week 滿足值 6、7 中任意一個時,處理方式相同
            System.out.println("今天是休息日");
            break;
        }
    }
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM