位置:首頁 > 高級語言 > C++教學 > C++ switch語句

C++ switch語句

switch語句可以讓一個變量對值的列表平等進行測試。每個值被稱為一個的情況(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語句。每一種情況後的值進行比較,以及一個冒號。

  • 常量表達的情況下,必須是相同的數據類型,在switch的變量,它必須是一個常量或文字。

  • 當進行切換的變量上等於的情況下,以下這種情況下,語句將執行,直到break語句為止。

  • 當達到一個break語句,開關終止,並且控製流跳轉到下switch語句的下一行。

  • 不是每個case需要包含一個break。如果未出現break,控製流都將落空後續case語句,直到break為止。

  • switch語句可以有一個可選默認case,它必須出現在switch結束。缺省情況下,可用於執行任務時冇有的情況下是true。需要在默認情況下不用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