枚举类型 enum
一、什么是枚举
枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。
定义:是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。
声明形式:
enum 枚举名 {枚举元素1,枚举元素2,……};
例如:
enum Weekday {SUN,MON,TUE,WED,THU,FRI,SAT};
应用说明:
- 第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1。
- 对枚举元素按常量处理,不能对他们呢赋值。例如,下面的语句是非法的:
SUN = 0 ; // SUN是枚举元素,此语句非法
- 也可以在声明时另行定义枚举元素的值,如:
enum Weekday {SUN = 7,MON = 1,TUE,WED,THU,FRI,SAT};
定义SUN为7,MON为1,以后顺序加1,SAT为6。
- 枚举值可以进行关系运算。
- 整数值不能直接给枚举变量,如需要将整数值给枚举变量,应进行强制类型转换。
二、应用实例
问题: 设某次体育比赛的结果有四种可能:胜(WIN)、负(LOSE)、平局(TIE)、比赛取消(CANCEL),编写程序顺序输出这四种情况。
分析: 由于比赛结果只有四种可能,所以可以声明一个枚举类型,用一个枚举类型的变量来存放比赛结果。
源程序 :
#include "pch.h"
# include <iostream>
using namespace std;
enum GameResult { WIN, LOSE, TIE, CANCEL };
int main() {
GameResult result;
enum GameResult omit = CANCEL;
for (int count = WIN; count <= CANCEL; count++) {
result = GameResult(count);
if (result == omit)
cout << "The game was cancelled"<<endl;
else {
cout << "The game was played ";
if (result == WIN)
cout << "and we won!";
if (result == LOSE)
cout << "and we lost.";
cout << endl;
}
}
return 0;
}