C++ switch 語句



switch 語句允許將變數與其值列表進行相等性測試。每個值稱為一個 case,系統會檢查正在切換的變數的每個 case。

語法

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

switch(expression) {
   case constant-expression  :
      statement(s);
      break; //optional
   case constant-expression  :
      statement(s);
      break; //optional
  
   // 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,控制流將貫穿後續的 case,直到遇到 break。

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

流程圖

C++ switch statement

示例

#include <iostream>
using namespace std;
 
int main () {
   // local variable declaration:
   char grade = 'D';

   switch(grade) {
      case 'A' :
         cout << "Excellent!" << endl; 
         break;
      case 'B' :
      case 'C' :
         cout << "Well done" << endl;
         break;
      case 'D' :
         cout << "You passed" << endl;
         break;
      case 'F' :
         cout << "Better try again" << endl;
         break;
      default :
         cout << "Invalid grade" << endl;
   }
   cout << "Your grade is " << grade << endl;
 
   return 0;
}

這將產生以下結果:

You passed
Your grade is D
廣告