switch標籤
switch標籤可以是數字(int)、字符(char)也可以是枚舉類型(enum)
實質是標籤項在比較的時候都轉化成int型
1)枚舉的第一項將會被轉換成0,以此類推。
2)字符將會按照ASCII標準轉化成int型
舉例
1 枚舉、數字標籤
#include <iostream>
using namespace std;
enum{apple, pineapple, banana, orange, watermelon, mangosteen};
int main()
{
cout << "請輸入水果序號 (0-5):\n";
cout << "按8號鍵退出\n";
int code;
cin >> code;
while (code!=8)
{
switch(code)
{
case 0: cout << "這個蘋果我要了\n"; break;
case 1: cout << "鳳梨真好吃\n"; break;
case 2: cout << "這香蕉是不是壞了\n"; break;
case orange: cout << "我的媽呀,這橘子酸掉牙了\n"; break;
case watermelon: cout << "我去,這西瓜還真甜!\n"; break;
case mangosteen: cout << "我去,山竹死貴死貴的\n"; break;
default: code = 9;
}
if(code == 9)
cout << "對不起,斷貨了\n";
cout << "請輸入水果序號 (0-5):\n";
cout << "按8號鍵退出\n";
cin >> code;
}
cout << "再見!再也不見\n";
return 0;
}
2 數字、字符標籤
#include <iostream>
using namespace std;
int main()
{
cout << "請輸入水果代碼:\n";
cout << "按&號鍵退出\n";
int code;
cin >> code;
while (code != 38)
{
switch(code)
{
case 49 : cout << "這個蘋果我要了\n"; break;
case 'b': cout << "鳳梨真好吃\n"; break;
case 'c': cout << "這香蕉是不是壞了\n"; break;
case 'd': cout << "我的媽呀,這橘子酸掉牙了\n"; break;
case 'e': cout << "我去,這西瓜還真甜!\n"; break;
case 'f': cout << "我去,山竹死貴死貴的\n"; break;
default: code = 9;
}
if(code == 9)
cout << "對不起,斷貨了\n";
cout << "請輸入水果代碼:\n";
cout << "按&號鍵退出\n";
cin >> code;
}
cout << "再見!再也不見\n";
return 0;
}
當然標籤也可以有枚舉、字符型,前提是枚舉項足夠多。因爲字符型轉化成ASCII碼以後,值小的字符一般在鍵盤上打不出來
要注意的是使用cin輸入時,若定義的輸入變量是int型,而你輸入的是一個字符,那麼會有意想不到的結果