- 枚举数据类型是一种由程序员定义的数据类型,其合法值是与它们关联的一组命名整数常量;
- 枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合;
- 枚举类型的定义格式为:
enum <数据类型名> {<枚举常量表>};//关键字enum——指明其后的标识符是一个枚举类型的名字;
//枚举常量表——由枚举常量构成。
"枚举常量"或称"枚举成员",是以标识符形式表示的整型量,表示枚举类型的取值。
各枚举常量之间以","间隔,且必须各不相同,且枚举变量一般是以大写字母表示(或首字母大写);
- 举例说明:
enum color {RED, BLUE, WHITE, BLACK}; // 定义枚举类型color,4个枚举变量值依次默认为:0,1,2,3 enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; // 定义枚举类型week;7个枚举变量值依次默认为:0,1,2,3,4,5,6
- 枚举常量只能以标识符形式表示,而不能是整型、字符型等文字常量。
例如,以下是非法定义:
应用举例: 创建一个枚举类型数据的变量,并为其赋值:enum letter{'a','d','F','s','T'}; //枚举常量不能是字符常量 enum year{2000,2001,2002,2003,2004,2005}; //枚举常量不能是整型常量
指定的值赋值为枚举变量enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; //声明枚举类型
week day; //定义week数据类型的变量, 数据类型名称week,变量名称day
day=Sun; //为创建的变量day赋值,赋值为Sun
cout<
//声明枚举类型color,并创建枚举类型变量color1, color2
enum color {RED, BLUE, WHITE, BLACK} color1, color2;
允许的赋值 *** 作enum Colors { red, orange, yellow = 9, green, blue }; //red 将被赋值为 0,orange 将为 1,yellow 将为 9,green 将为 10,blue 将为 11
enum Rooms { livingroom = 1, den, bedroom, kitchen }; //livingroom 被赋值为 1,den 将为 2,bedroom 将为 3,kitchen 将为 4
允许的关系运算有:==、<、>、<=、>=、!=等color3=RED; //将枚举常量值赋给枚举变量 color4=color3; //相同类型的枚举变量赋值,color4的值为RED int i=color3; //将枚举变量赋给整型变量,i的值为1 int j=GREEN; //将枚举常量赋给整型变量,j的值为0
循环遍历输出枚举变量//比较同类型枚举变量color3,color4是否相等 if (color3==color4) cout<<"相等"; //输出的是变量color3与WHITE的比较结果,结果为1 cout<< color3
#include
using namespace std;
int main() {
enum weekday {
SUN,
MON,
TUE,
WED,
THU,
FRI,
SAT,
};
cout << SAT << endl;
for (int day = SUN; day <= SAT; day++) {
cout << "今天星期 " << day << endl;
}
return 0;
}
//将i定义为枚举数据类型输出的写法将报错
for(weekday i = MON; i <= SUN; i++)
{
cout << i << endl;
}
输出结果:
枚举变量的switch用法#include
using namespace std;
enum weekday {
SUN,
MON,
TUE,
WED,
THU,
FRI,
SAT,
};
int main() {
int today;
cin >> today;
switch (today)
{
case SUN:
cout << "今天星期天"<
输出结果:
使用注意:- 枚举变量可以直接输出,但不能直接输入。
如:cout >> color3; //非法
- 不能直接将常量赋给枚举变量。
如: color1=1; //非法
- 不同类型的枚举变量之间不能相互赋值。
如: color1=color3; //非法
- 枚举变量的输入输出一般都采用switch语句将其转换为字符或字符串;枚举类型数据的其他处理也往往应用switch语句,以保证程序的合法性和可读性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)