C# - switch 語句



switch 語句允許測試一個變數是否與一系列值相等。每個值稱為一個 case,被切換的變數會針對每個 switch case 進行檢查。

語法

C# 中 switch 語句的語法如下:

switch(expression) {
   case constant-expression1  :
      statement(s);
      break;
   case constant-expression2  :
   case constant-expression3  :
      statement(s);
      break;
  
   /* you can have any number of case statements */
   default : /* Optional */
   statement(s);
}

switch 語句適用以下規則:

  • switch 語句中使用的表示式必須是整數型別、列舉型別,或者是一個類型別(該類具有單個轉換為整數或列舉型別的轉換函式)。

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

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

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

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

  • 並非每個 case 都需要包含break。如果沒有任何break,則會引發編譯時錯誤。

  • switch 語句可以包含可選的default case,它必須出現在 switch 的末尾。當沒有一個 case 為真時,可以使用 default case 來執行任務。

流程圖

switch statement in C#

示例

using System;

namespace DecisionMaking {
   class Program {
      static void Main(string[] args) {
         /* local variable definition */
         char grade = 'B';
         
         switch (grade) {
            case 'A':
               Console.WriteLine("Excellent!");
               break;
            case 'B':
            case 'C':
               Console.WriteLine("Well done");
               break;
            case 'D':
               Console.WriteLine("You passed");
               break;
            case 'F':
               Console.WriteLine("Better try again");
               break;
               default:
            Console.WriteLine("Invalid grade");
               break;
         }
         Console.WriteLine("Your grade is  {0}", grade);
         Console.ReadLine();
      }
   }
}

編譯並執行以上程式碼後,將產生以下結果:

Well done
Your grade is B
csharp_decision_making.htm
廣告