Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤和異常

Java 多執行緒

Java 同步

Java 網路程式設計

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階Java

Java 其他

Java APIs和框架

Java 類引用

Java 有用資源

Java - switch語句



Java switch語句

Java 的switch語句允許測試一個變數是否與一系列值相等。每個值稱為一個case,系統會檢查正在切換的變數是否與每個case匹配。

當需要多個if-else語句時,可以使用switch語句。它可以包含多個程式碼塊以及case值,並根據匹配的case值執行多個程式碼塊中的一個。

語法

Java switch語句的語法如下:

switch(expression) {
   case value :
      // Statements
      break; // optional
   
   case value :
      // Statements
      break; // optional
   
   // You can have any number of case statements.
   default : // Optional
      // Statements
}

規則

以下規則適用於switch語句:

  • 在switch語句中使用的變數只能是整數、可轉換為整數的型別(byte、short、char)、字串和列舉。

  • switch語句中可以包含任意數量的case語句。每個case後跟要比較的值和一個冒號。

  • case的值必須與switch語句中的變數的資料型別相同,並且必須是常量或字面量。

  • 當正在切換的變數等於某個case時,該case後面的語句將執行,直到遇到break語句。

  • 遇到break語句時,switch語句將終止,控制流跳轉到switch語句後面的下一行。

  • 並非每個case都需要包含break。如果沒有break,控制流將貫穿到後續的case,直到遇到break。

  • switch語句可以有一個可選的default case,它必須出現在switch的末尾。default case可以在沒有任何case為真時執行任務。default case不需要break。

流程圖

Switch Statement

示例

示例1

在這個例子中,我們展示了switch語句的用法,其中case基於char型別。我們建立了一個變數grade。根據grade的值,檢查每個case。如果case滿足條件並且存在break語句,則不會檢查後續的case。

public class Test {

   public static void main(String args[]) {
      char grade = 'C';

      switch(grade) {
         case 'A' :
            System.out.println("Excellent!"); 
            break;
         case 'B' :
         case 'C' :
            System.out.println("Well done");
            break;
         case 'D' :
            System.out.println("You passed");
         case 'F' :
            System.out.println("Better try again");
            break;
         default :
            System.out.println("Invalid grade");
      }
      System.out.println("Your grade is " + grade);
   }
}

輸出

使用各種命令列引數編譯並執行上述程式。這將產生以下結果:

Well done
Your grade is C

示例2

在這個例子中,我們展示了switch語句的用法,其中case基於int型別。我們建立了一個變數grade。根據grade的值,檢查每個case。如果case滿足條件並且存在break語句,則不會檢查後續的case。

public class Test {

   public static void main(String args[]) {
      int grade = 3;

      switch(grade) {
         case 1 :
            System.out.println("Excellent!"); 
            break;
         case 2 :
         case 3 :
            System.out.println("Well done");
            break;
         case 4 :
            System.out.println("You passed");
         case 5 :
            System.out.println("Better try again");
            break;
         default :
            System.out.println("Invalid grade");
      }
      System.out.println("Your grade is " + grade);
   }
}

輸出

使用各種命令列引數編譯並執行上述程式。這將產生以下結果:

Well done
Your grade is 3

示例3

在這個例子中,我們展示了switch語句的用法,其中case基於String型別。我們建立了一個變數grade。根據grade的值,檢查每個case。如果case滿足條件並且存在break語句,則不會檢查後續的case。

public class Test {

   public static void main(String args[]) {
      String grade = "C";

      switch(grade) {
         case "A" :
            System.out.println("Excellent!"); 
            break;
         case "B" :
         case "C" :
            System.out.println("Well done");
            break;
         case "D" :
            System.out.println("You passed");
         case "F" :
            System.out.println("Better try again");
            break;
         default :
            System.out.println("Invalid grade");
      }
      System.out.println("Your grade is " + grade);
   }
}

輸出

使用各種命令列引數編譯並執行上述程式。這將產生以下結果:

Well done
Your grade is C

default關鍵字

default關鍵字用於在沒有case值匹配時指定一個程式碼塊。default關鍵字是可選的,但在switch case語句中應該使用它。

java_decision_making.htm
廣告