枚举类型的定义和应用总结
更新时间:2020年4月25日 17:43 点击:2503
定义:
如果一种变量只有几种可能的值,可以定义为枚举类型。所谓“枚举类型”是将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。
声明:
声明枚举类型用enum开头,例如:
复制代码 代码如下:
enum weekday{sun,mon,tue,wed,thu,fri,sat};
上面声明了一个枚举类型weekday,花括号中的sun,mon,。。。。sat等称为枚举元素或枚举常量。
这些枚举常量,不会因为我们写了sun就自动代表着“星期天”,它只是一个符号,究竟用来代表什么含义,完全却决于程序员自己对它们的处理。
表示这个类型的变量的值只能是以上7个值之一,他们是用户自己定义的标识符。
在声明了枚举类型之后,就可以用它开定义变量。如
复制代码 代码如下:
weekday workday,week_end;
这样,workday和week_end被定义为枚举类型weekday的变量。
说明:
(1)对枚举元素按照常量处理,故称为枚举常量。它们不是变量,不能对他们赋值。
(2)枚举元素作为常量,它们是有值的,C++编译按定义时的顺序对它们赋值为0,1,2,3,......
复制代码 代码如下:
#include<iostream>
using namespace std;
int main(){
enum weekday{sun,mon,tue,wed,thu,fri,sat};
weekday one;
one=sun;
cout<<one;
cout<<endl;
}
我们也卡一在声明枚举类型时,另行指定枚举元素的值,如
复制代码 代码如下:
#include<iostream>
using namespace std;
int main(){
enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat};
weekday one,two;
one=sun;
two=wed;
cout<<one<<endl;
cout<<two<<endl;
cout<<endl;
}
指定sun为7,mon为1,以后按顺序加1,sat为6。
(3)枚举值可以用来做比较。
枚举值的比较规则是按其在声明枚举类型时的顺序号比较。如果定义时未人为指定,则第一个枚举元素的值认作0.
复制代码 代码如下:
#include<iostream>
using namespace std;
int main(){
enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat};
weekday one,two;
one=sun;
two=wed;
cout<<(sun>wed?sun:wed);
cout<<endl;
}
(4)一个整数不能直接赋给一个枚举变量,应先进行强制类型转换才能赋值。
复制代码 代码如下:
#include<iostream>
using namespace std;
int main(){
enum weekday{sun,mon,tue,wed,thu,fri,sat};
weekday one;
one=weekday(7);
cout<<one;
cout<<endl;
}
以上的语句是将序号为2的枚举元素赋给one。相当于
复制代码 代码如下:
one=sun;
一个例子:
口袋中有红、黄、蓝、白、黑5种颜色的球若干。每次从口袋中任意取出3个球,问得到3中不同颜色的球的可能取法,输出每种排列的情况。
分析:球的颜色只有5种,每一个球的颜色只能是这5种之一,因此可以用枚举类型变量来处理。
复制代码 代码如下:
/*******
设某一次取出的颜色为i,j,k。显然,i,j,k都是以上5中颜色之一,根据题意,
要求i,j,k三者互不相同。可以用穷举法,对每一种可能分别进行测试,看那一组符合条件
*****/
#include<iostream>
using namespace std;
int main(){
enum color{red,yellow,blue,white,black};
color pri;
int i,j,k,n=0,loop;
for(i=red;i<=black;i++){
for(j=red;j<=black;j++)
if(i!=j){
for(k=red;k<=black;k++){
if(k!=i&&k!=j){
n++;//使n累加,统计可能的抽取情况
cout<<n<<"\t";
for(loop=0;loop<3;loop++){//通过循环,输出该次i,j,k所对应的颜色
switch(loop){
case 0:pri=color(i);break;
case 1:pri=color(j);break;
case 2:pri=color(k);break;
}
switch(pri){
case red: cout<<"red\t";break;
case yellow:cout<<"yellow\t";break;
case blue: cout<<"blue\t";break;
case white: cout<<"white\t";break;
case black: cout<<"black\t";break;
}
}
cout<<endl;
}
}
}
}
cout<<"total:"<<n<<endl;
}
相关文章
- 以下是对c#中枚举类型的定义与使用进行了详细的分析介绍,需要的朋友可以过来参考下...2020-06-25
- 这篇文章主要介绍了C#枚举类型与结构类型实例,需要的朋友可以参考下...2020-06-25
- 如果一种变量只有几种可能的值,可以定义为枚举类型。所谓“枚举类型”是将变量的值一一列举出来,变量的值只能在列举出来的值的范围内...2020-04-25
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
下面小编就为大家带来一篇JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-03- 这篇文章主要介绍了C++枚举类型enum与enum class的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-21
- 下面小编就为大家带来一篇C#语言基础——结构体和枚举类型全面解析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 相信很多人对枚举并不陌生,枚举可以很方便和直观的管理一组特定值。下面这篇文章主要给大家介绍了关于C#中如何为枚举类型添加描述方法的相关资料,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了Swift教程之枚举类型详解,本文讲解了枚举语法、匹配枚举值与switch语句、关联值、原始值等内容,需要的朋友可以参考下...2020-06-30
- 需求 : 枚举类型在界面显示的时候可以显示相应的中文信息, 这样界面对用户友好 .场景 : 在一些业务中涉及到审核功能的时候, 往往有这几个状态 :未送审 , 审核中 ,审核通过, 驳回 . 这个时候我们会定义一个枚举类型来描述 :...2020-06-25
- go 语言枚举类型是这么用的?在什么场景下会用到枚举?本文对 go 语言枚举做了详细讲解,感兴趣的朋友跟随小编一起看看吧...2021-09-04
- 这篇文章主要介绍了C#中枚举类型和radiobox关联操作的方法,实例分析了C#中枚举类型及与控件关联操作的相关技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章主要为大家详细介绍了C#枚举类型和结构体,,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- 这篇文章主要介绍了C#中可枚举类型,IEnumerable和IEnumerator接口j及其泛型实现和迭代器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- 本文主要介绍C语言 枚举类型,这里提供了详细的相关资料及示例代码,以便大家学习参考,有兴趣的小伙伴可以参考下...2020-04-25