c++:enum枚举数据类型(详细举例)

c++:enum枚举数据类型(详细举例),第1张

基本概念:
  • 枚举数据类型是一种由程序员定义的数据类型,其合法值是与它们关联的一组命名整数常量;
  • 枚举类型(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语句,以保证程序的合法性和可读性。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/585014.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)