首页 / C++ / 关于C++枚举类型enum
关于C++枚举类型enum
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于C++枚举类型enum,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2628字,纯文字阅读大概需要4分钟。
内容图文
![关于C++枚举类型enum](/upload/InfoBanner/zyjiaocheng/716/5462504210654fa09a47e0e3cd8aeef9.jpg)
关于C++枚举类型enum
一、何为枚举类型?
枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。
声明形式:
enum 枚举名 {变量列表};
例如:
enum Weekday{SUN,MON.TUE,WED,THU,FRI,SAT};
定义枚举数据类型变量,例如:
Weekday myweekday;
(注意数据类型是Weekday而不是enum Weekday)
二、枚举类型应用说明
- 枚举元素具有默认数值,它们依次为:0,1,2,3,...。例如上例中SUN的值为0,MON的值为1,TUE为2,...,SAT为6。
- 也可以在声明中另行定义枚举元素的值,如:
enum Weekday{SUN=7,MON=1,TUE,WED,THU,FRI,SAT};
定义SUN为7,MON为1,以后顺序加1,TUE为2,WED为3,...,SAT为6。
- 对枚举元素按常量处理,但不能对它们直接赋予常量值。例如,下面的的语句是错误的:
SUN=7;//SUN是枚举元素,不能直接赋予常量值
如需要将整数附值给枚举变量,应进行强制类型转换,例如:
SUN=(Weekday)7;//在值前面加(类型)是常用的强制类型转换方法
- 枚举值可以进行关系运算:
1)可以使用关系运算符来比较两个枚举变量。例如,以下 if 语句判断存储在 myweekday1中的值是否小于存储在 myweekday中的值:
if ( myweekday1 < myweekday2)
如果 myweekday1存储的值小于 myweekday2的值,则该语句为 true。否则该语句将为 false。
2)可以使用整数值而不是符号名称来测试枚举变量。例如,以下两个 if 语句是等效的:
if myweekday== MON)
if ( myweekday == 1)
- 如果为枚举变量赋值,则它们必须是整数。以下赋值语句将产生错误:
enum Weekday{SUN=1.1,MON=1.2,TUE=1.3,WED=1.4,THU,FRI,SAT }; //错误
- 枚举数据类型的目的之一是符号名称有助于使程序自我解释。但是,这些名称不是字符串,而是数值,所以在输出时,输出的是数字,而不是字符串。例如:
Weekday myweekday = SUN;
cout << myweekday;//输出的是0这个数值
输入结果如下:
- 枚举值可以赋给整型变量,例如:
int a;
a = SUN;//枚举值可以赋给整形变量
cout << a;
- 因为枚举数据类型的符号名称与整数值相关联,所以它们可以在 switch 语句中使用,如下面的程序所示:
题目:口袋中有红,黄,蓝,白,黑5种颜色球若干个。每次从口袋中取出3个不同颜色的球,问有多少种取法?
#include<iostream>
using namespace std;
void transfer(int i)//将相应的数值组合通过switch语句转换为字符串
{
switch (i)
{
case 0:cout << "red "; break;
case 1:cout << "yello "; break;
case 2:cout << "blue "; break;
case 3:cout << "white "; break;
case 4:cout << "black "; break;
}
}
enum ball {red,yello,blue,white,black};//定义球的枚举类型
int main()
{
int i, j, k,count=0;
for (int i = red; i <= black; i++)
{
for (int j = i+1; j <= black; j++)
{
for (int k =j+1; k <= black; k++)
{
transfer(i);
transfer(j);
transfer(k);
cout <<endl;
count++;
}
}
}
cout << count;
return 0;
}
运行结果:
三,总结
当一个变量有几种可能的取值时,可以将它定义为枚举类型。枚举类型有利于程序的可读性。对枚举元素按常量处理,枚举元素具有默认数值,但不能对它们直接赋予常量值。因为枚举变量是整数,所以也可以使用关系运算符来比较两个枚举变量,并且通常配合switch语句来输出相应的值。
内容总结
以上是互联网集市为您收集整理的关于C++枚举类型enum全部内容,希望文章能够帮你解决关于C++枚举类型enum所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。