目录
说明
关于枚举类型可以阅读下面这篇文章进行了解为什么要使用枚举类型以及如何简单使用
C语言枚举类型简介_Solarboom03的博客-CSDN博客_c语言中枚举是什么数据类型
枚举类型--enum
[枚举类型应用说明]
- 对枚举元素按常量处理,不能对它们赋值。例如,不能写: sum=0;
- 枚举元素具有默认值,它们依次为:0,1,2,...,也可以在声明时另行指定枚举元素的值,如: enum weekday { sun , mon , tue , wed , thu = 8 , fri , sat };(则对应元素的值分别为:0,1,2,3,8,9,10.)
- 枚举值可以进行关系运算;
- 整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。
具体举例如下:(遍历枚举类型的值)
#include<iostream>
using namespace std;//枚举类型
enum DAY { mon, tue, wed, thu, fri, sat, sun };
int main()
{
int day;
for (day = mon; day <= sun; day++)
cout << "枚举类型:" << day<<" ";//注意加空格的写法
return 0;
}
输出结果如下图:
另:声明枚举变量时可以不写关键字enum,也可以在类型名前写enum;
enum DAY { mon, tue, wed, thu, fri, sat, sun };
int main()
{
DAY day;
enum DAY days;//两种均可
}
题目(易)
设某次体育比赛的结果有四种可能:胜(win)、负(lose)、平局(tie)、比赛取消(cancel),编写程序顺序输出这四种情况。
【分析】比赛结果只有四种可能,可以声明一个枚举类型,声明一个枚举类型的变量来存放比赛结果,较容易表达。
#include<iostream>
using namespace std;
enum game_result{win,lost,tie,cancel};//声明枚举类型
int main()
{
game_result result;//定义一个枚举变量用来存放比赛结果
int count;
for (count = win; count <= cancel; count++)
{
result = (game_result)count;//强制类型转换:枚举类型可赋值给int,但int不能赋值给枚举类型
if (result == cancel)
cout << "the game was cancelled";
else
{
cout << "the game was played";
if (result == win)
cout << " and we won!";
else
if (result == lost)
cout << " we were lost";
else
cout << " the result was tie";
cout << "\n"; //cout<<endl;
}
}
return 0;
}
结果如下: