天天看點

c/c++ 枚舉enum用法總結

傳入switch的參數可以有兩種類型:int和name

case1:switch傳入參數為int類型

notice:就不用定義name類型的變量了

void test1()
{
	//傳入switch的參數可以有兩種類型:int和enum name
	//case1:switch傳入參數為int類型
	//notice:就不用定義enum name類型的變量了
	enum name{ ZhangSan, LiSi, WangWu };
	int ival;
	cin >> ival;
	switch (ival){
	case ZhangSan:
		cout << "ZhangSan";
		break;
	case LiSi:
		cout << "LiSi";
		break;
	case WangWu:
		cout << "WangWu";
		break;
	default:
		cout << "error!";
	}
}
           

case2:switch傳入參數為enum name類型

notice1:enum name類型變量定義并初始化方式

1.1:直接定義并初始化 name person = ZhangSan;

1.2:利用cin,讀入類型是int,需要用(name)強轉

notice2:定義name類型有兩種方式

void test2()
{
	//傳入switch的參數可以有兩種類型:int和name
	//case2:switch傳入參數為enum name類型
	//notice1:name類型變量定義并初始化方式
	//        1.1:直接定義并初始化 name person = ZhangSan;
	//        1.2:利用cin,讀入類型是int,需要用(name)強轉
	//notice2:定義name類型有兩種方式
	enum name{ ZhangSan, LiSi, WangWu };
	name person = ZhangSan;//定義并賦初始值

	/****或者這樣定義****/
	/*
	enum name{ ZhangSan, LiSi, WangWu } person;//但沒有賦初值
	person =ZhangSan;//賦初始值
	*/

	int ival;
	cin >> ival;
	person = (name)ival;//将int強轉為name

	//error
	//person = ival;

	switch (person){
	case ZhangSan:
		cout << "ZhangSan";
		break;
	case LiSi:
		cout << "LiSi";
		break;
	case WangWu:
		cout << "WangWu";
		break;
	default:
		cout << "error!";
	}
}
           

繼續閱讀