引入
如果一个变量,我们只希望它的值在我们指定的值得范围内,例如week,我们只希望值在周一至周日之间,而不是星期八等特殊情况,我们就需要枚举类型。
枚举
如果一个变量,只有可能是几种类型的值,就可以定义为枚举类型
。枚举就是把可能的值都列举出来,变量的值,只能在列举的这个值的范围内。
一般形式
enum 枚举类型名 {枚举元素列表}
使用枚举
我们来定义一个 weekday 变量类型
1 | enum Weekday {sun , mon , tue , web , tuhe , fri , sat}; |
我们大概清楚了,枚举常量是由程序员来设计的,用什么名字代表什么含义,都是根据需要耳而定,但值必须是声明的枚举元素之一
,否则非法。
注意
(1)C 编译时,枚举类型的元素是按照常量处理的,所以我们把枚举元素称为枚举常量。
1 | sun =1 ; |
(2)每一个枚举元素都代表一个整数,从0开始。
1 | enum Weekday {sun , mon , tue , web , tuhe , fri , sat}; |
我们可以直接赋值给枚举变量整数,它会自动从枚举元素中找到对应的常量。
(3)枚举元素可以用来做判断比较
1 | if(workday==mon) |
因为枚举类型的值是整数,所以,以上都是合法的。
例子
五色球,取三次,取出的球都是不同色的搭配方案有多少种,输出所有的搭配方案。
1 |
|
输出
第1种 红 黄 蓝
第2种 红 黄 白
第3种 红 黄 黑
第4种 红 蓝 黄
第5种 红 蓝 白
第6种 红 蓝 黑
第7种 红 白 黄
第8种 红 白 蓝
第9种 红 白 黑
第10种 红 黑 黄
第11种 红 黑 蓝
第12种 红 黑 白
第13种 黄 红 蓝
第14种 黄 红 白
第15种 黄 红 黑
第16种 黄 蓝 红
第17种 黄 蓝 白
第18种 黄 蓝 黑
第19种 黄 白 红
第20种 黄 白 蓝
第21种 黄 白 黑
第22种 黄 黑 红
第23种 黄 黑 蓝
第24种 黄 黑 白
第25种 蓝 红 黄
第26种 蓝 红 白
第27种 蓝 红 黑
第28种 蓝 黄 红
第29种 蓝 黄 白
第30种 蓝 黄 黑
第31种 蓝 白 红
第32种 蓝 白 黄
第33种 蓝 白 黑
第34种 蓝 黑 红
第35种 蓝 黑 黄
第36种 蓝 黑 白
第37种 白 红 黄
第38种 白 红 蓝
第39种 白 红 黑
第40种 白 黄 红
第41种 白 黄 蓝
第42种 白 黄 黑
第43种 白 蓝 红
第44种 白 蓝 黄
第45种 白 蓝 黑
第46种 白 黑 红
第47种 白 黑 黄
第48种 白 黑 蓝
第49种 黑 红 黄
第50种 黑 红 蓝
第51种 黑 红 白
第52种 黑 黄 红
第53种 黑 黄 蓝
第54种 黑 黄 白
第55种 黑 蓝 红
第56种 黑 蓝 黄
第57种 黑 蓝 白
第58种 黑 白 红
第59种 黑 白 黄
第60种 黑 白 蓝
共有 60 种取法
枚举最重要的就是
- 可以当做数值使用,也可以进行判断
- 值只能在枚举元素中选择,不能超出这个范围或者直接赋值
尾巴
这是我的个人学习笔记,主要是应付考研复习使用,充斥着一些吐槽和个人观点,并不严谨,欢迎大家参考、指正。