C++:枚举类型



1. 枚举类型

某些情况下,数据的取值只有有限的几种可能。比如一场比赛只有胜、负、平局、比赛取消 4 种情况,一周只有 7 天等。虽然可以使用 int、char 类型来表示它们,但是对数据的合法性检查却是一件麻烦的事情。那么,有没有一种数据类型只有有限的几种取值,并且能自动检查数据合法性呢?答案是有的。 C++ 中的枚举类型就是专门用来解决这类问题的。

语法:

enum 枚举类型名称 {变量值列表};

例如:

enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT};

枚举类型应用说明:

  1. 对枚举元素按常量处理,不能对它们赋值。例如,下面的语句是非法的:
    SUN = 0; // SUN 是枚举元素,此语句非法
  2. 枚举类型具有默认值,它们依次为:0,1,2,…。例如,上例中 SUN 的值为 0, MON 为 1,TUE 为 2,…,SAT 为 6。
  3. 也可以在声明时另行定义枚举元素的值,如:
    // 定义 SUN 为 7,MON 为 1,以后顺序加 1,SAT 为 6。
    enum Weekday {SUN = 7, MON = 1, TUE, WED, THU, FRI, SAT};
  4. 枚举类型可以进行关系运算。
  5. 整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。

2. 一个示例

#include <iostream>
using namespace std;

enum GameResult
{
	WIN,
	LOSE,
	TIE,
	CANCEL
};

int main(int argc, char* argv[])
{
	GameResult result; // 声明变量时,可以不写关键字 enum
	enum GameResult omit = CANCEL; // 也可以在类型前面写 enum

	for (int count = WIN; count <= CANCEL; count++) // 隐含类型转换
	{
		result = GameResult(count); // 显式类型转换
		if (result == omit)
		{
			cout << "The game was canceled." << endl;
		}
		else
		{
			cout << "The game was played";
			if (result == WIN)
			{
				cout << " and we won!";
			}
			else if (result == LOSE)
			{
				cout << " and we lost.";
			}
			else
			{
				cout << ".";
			}
			cout << endl;
		}
	}
	return 0;
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值