(五十四)枚举

简介:

枚举的使用方法类似结构,但是不需要为每个变量制定变量类型。

枚举的使用范围,主要是用来给某一个状态赋值,例如,星期一到星期日,通过枚举,可以分别赋值1、2、3、4、5、6、7,这样在使用的时候,可以直接调用星期x这个名字,便自动调用相应的变量。

枚举的格式为:

enum 枚举名{枚举成员1,枚举成员2,……};

上代码:


#include <iostream>

int main()
{
	using namespace std;
	enum bi { a1st, a2nd, a3rd = 5, a4th, a5th = 6, a6th, a7th };	
	//声明枚举,其中第一个和第二个是默认的,第三个赋值5,第四个默认,第五个赋值6(和第四个同值),第六个默认,第七个默认
	cout << "a1st=" << a1st << endl;	//输出枚举第一个成员
	cout << "a2nd=" << a2nd << endl;	//输出枚举第二个成员
	cout << "a3rd=" << a3rd << endl;	//输出枚举第三个成员
	cout << "a4th=" << a4th << endl;	//输出枚举第四个成员
	cout << "a5th=" << a5th << endl;	//输出枚举第五个成员
	cout << "a6th=" << a6th << endl;	//输出枚举第六个成员
	cout << "a7th=" << a7th << endl;	//输出枚举第七个成员
	bi abc;	//声明abc为枚举bi类型的一个变量——即bi是类型名(枚举),abc是变量
	abc = a5th;	//给变量abc赋值,值只能为枚举bi内的成员,或者枚举bi取值范围内的值(存疑)
	cout << "abc = " << abc << endl;
	abc = bi(8);	//再次给变量abc赋值,值为枚举取值范围内的值8
	cout << "abc = bi(8) = " << abc << endl;
	//教程上说,给被枚举类型声明的变量取值时,只能包含取值枚举成员最大值的2的N次幂-1 的值。
	//但经过实践测试,假如abc=bi(2000);这样远超于枚举bi最大值8所处的2的n次幂-1的最大范围,但依然能显示。
	//因此,存在一定问题
	//abc = 5;	类型为枚举bi的变量abc,不能被直接取值为5,必须为枚举范围内如bi(数值)这样的值
	//cout << "abc = 5 =" << abc << endl;
	int aa = 1;	//声明并初始化整型int的变量aa的值为1
	aa = aa + abc;	//变量aa=1+类型为枚举bi的变量abc的值
	cout << "aa = 1 + abc = " << aa << endl;
	aa = a4th + a5th;	//变量aa=枚举成员a4th和a5th的值之和
	cout << "aa = a4th + a5th = " << aa << endl;
	system("pause");
	return 0;
}

输出:


a1st=0
a2nd=1
a3rd=5
a4th=6
a5th=6
a6th=7
a7th=8
abc = 6
abc = bi(8) = 8
aa = 1 + abc = 9
aa = a4th + a5th = 12

枚举的特点:

①在枚举的大括号里,填写成员名,可不填写值(将自动获取默认值);

②若在声明的时候,不给枚举的成员赋值,在第一个成员的默认值为0,后面的为前一个的值加1;

③在赋值的时候,枚举的成员的值,可以相同,可以不同,可以后面比前面大,也能小;

④无需给每个枚举的成员赋值,未赋值的成员,其值为前一个成员的值加1;

⑤不能在声明之后,再次给枚举的成员赋值——只能在声明的时候同时赋值;

⑥枚举bi作为类型名时,其变量只能通过枚举bi来赋值,不能被直接赋值,例如abc = bi(8);或abc = a5th;是可行的,但是abc = 5不可行的;

⑦枚举bi作为类型名时,其变量不能为枚举相加(或相减相乘)的算数结果。例如:abc = a4th + a5th;或abc = bi(4) + bi(5);是不可行的,有其他整型的数字参与在内,也是不可行的。例如:abc = a4th + 4;

⑧当int或者其他整型、浮点类型作为类型名时,其变量可以是枚举成员或者枚举范围值的算数结果。例如:double aabc = a4th + 4;是可行的。

⑨按照说明,枚举有最大取值范围,但实际操作下,例如abc=bi(1000);这样的也是可以输出结果1000的,这是为什么?


目录
相关文章
|
算法 程序员 C#
C++二分查找算法:132 模式枚举3
C++二分查找算法:132 模式枚举3
|
Java 开发者
枚举(枚举应用)|学习笔记
快速学习 枚举(枚举应用)
165 0
|
9月前
|
Java Spring
使用枚举定义常量更好点儿
使用枚举定义常量更好点儿
|
开发者
枚举(枚举中定义其它结构)|学习笔记
快速学习 枚举(枚举中定义其它结构)
126 0
|
Java 程序员
【JavaSE】Java基础语法(四十六):枚举
1. 概述 枚举是一种特殊的数据类型,它列出了一组预定义的常量,并使用标识符来引用这些常量。枚举的用途很广泛,下面列举了几个常见的应用场景: 管理常量:如果您需要在程序中使用一组固定不变的常量,建议使用枚举来管理这些常量。这样可以使得代码更加可读和易于维护。例如,你可以使用一个代表颜色的枚举,来管理程序中可能需要使用到的所有颜色。
【JavaSE】Java基础语法(四十六):枚举
|
算法 测试技术 C#
C++单调向量算法:132模式枚举1简洁版
C++单调向量算法:132模式枚举1简洁版
|
9月前
|
算法
枚举算法的介绍
枚举算法的介绍
87 0
|
C#
C# 给枚举类型增加一个描述特性
前言 相信很多人对枚举并不陌生,枚举可以很方便和直观的管理一组特定值。如果我们在页面上直接输出我们希望匹配的汉语意思或则其他满足我们需求的语句就更好了,当然,通常小伙伴们都会再页面上if(enum==1) “我是一个枚举”或者switch(enum)这种方式解决。
1061 0

热门文章

最新文章