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型,而你输入的是一个字符,那么会有意想不到的结果