switch (IntegerExpression) { case ConstantExpression: //在這裡放置一個或多個語句 case ConstantExpression: //在這裡放置一個或多個語句 //case可被重複多次 default: //在這裡放置一個或多個語句 }此類語句的第一行以單詞 switch 開始,後面是括號內的整數表示式 Integer Expression。 這可以是以下兩種之一:
case ConstantExpression: //在這裡放置一個或多個語句在單詞 case 之後是一個常數表示式 Constant Expression,它必須是整數型別,如 int 或 char,後面跟一個冒號。常數表示式可以是整型常數或整型命名常數。該表示式不能是一個變數(如 n==25),也不能是布林表示式(如 x<22)。case 語句標記一段分支語句的開頭,如果 switch 表示式的值與 case 達式的值匹配,則進入該分支。
請注意,與大多數語句塊不同,這組語句不需要大括號,且塊中每個 case 語句的表示式必須是唯一的。
在所有 case 語句後面的是可選的 default 部分。如果沒有一個 case 表示式與 switch 表示式匹配,則進入該分支。因此,它的作用就像 if-else if 語句中的結尾 else。#include <iostream> using namespace std; int main() { char choice; cout << "Enter A, B, or C: "; cin >> choice; switch (choice) { case 'A' : cout<< "You entered A. n"; break; case 'B' : cout << "You entered B. n"; break; case 'C' : cout << "You entered C.n"; break; default: cout << "You did not enter A, B, or C!n"; } return 0; }程式輸出結果:
Enter A, B, or C: B
You entered B.
注意,default 部分(如果沒有 default 則是最後一個 case 部分)不需要 break 語句。當然有些程式設計師有強迫症,喜歡也放一個以保持一致。
下面程式是上面程式的修改版,它演示了如果忽略 break 語句會發生什麼。#include <iostream> using namespace std; int main() { char choice; cout << "Enter A, B, or C: "; cin >> choice; switch (choice) { case 'A' : cout<< "You entered A. n"; case 'B' : cout << "You entered B. n"; case 'C' : cout << "You entered C.n"; default: cout << "You did not enter A, B, or C!n"; } return 0; }程式執行結果:
Enter A, B, or C: A
You entered A.
You entered B.
You entered C.
You did not enter A, B, or C!
#include <iostream> using namespace std; int main() { char feedGrade; //Get the desired grade of feed cout << "Our dog food is availablein three grades:n"; cout << "A, B, and C. Which do you want pricing for? "; cin >> feedGrade; // Find and display the price switch(feedGrade) { case 'a': case 'A': cout << "30 cents per pound.n"; break; case 'b': case 'B': cout << "30 cents per pound.n"; break; case 'c': case 'C': cout << "15 cents per pound.n"; break; default : cout << "That is an invalid choice.n"; } return 0; }程式輸出結果:
Our dog food is available in three grades:
A, B, and C. Which do you want pricing for? b
20 cents per pound.