为了在C/C++的学习之路中留下更深刻的印象,从现在开始,我将着手写一系列的C/C++进阶学习笔记,文章中不涉及深层次的应用,不作教科书式的详解,只写出基本的用法和介绍,以后在学习和工作过程中有用到的功能再作补充,保证介绍的简洁、实用和高效
欢迎到 我的博客 查看更详细的内容
枚举类型
介绍
有时候在开发中需要定义一系列的有规律的常量
#define Mon 1
#define Tue 2
#define Wed 3
#define Thu 4
#define Fri 5
#define Sat 6
#define Sun 7
这样的写法比较重复累赘,我们可以用枚举类型简化这一过程
enum DAY
{
Mon = 1, Tue, Wed, Thu, Fri, Sat, Sun
};
与上述的反复#define
等价,都定义了一系列的常量变量,这就是枚举类型的主要作用,默认第一个常量从0开始,可以人为赋值每一个常量的值
用法
声明和定义分开
enum DAY { Mon = 1,Tue,Wed,Thu,Fri,Sat,Sun }; ...... enum DAY yesterday; enum DAY today;
声明和定义同时进行
enum //标号DAY可以省略 { Sat, Sun = 0, Mon, Tue, Wed, Thu, Fri } today; //today的类型为枚举型enum DAY
enum DAY { Mon=1, Tue, Wed, Thu, Fri Sat, Sun} today; //声明同时定义
示例
环境 Windows 7 旗舰版 Visual Studio 2015
// Enum_Practice.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
enum Week
{
Sun = 1, Mon, Tue, Wed, Thu, Fri, Sat
};
int main()
{
enum Week today, yesterday;
int temp;
while (1) {
cout << endl << "Enter day: " << endl;
cin >> temp;
today = (Week)temp; //赋值要强制转换类型
switch (today)
{
case Sun:cout << "Sunday" << endl;
break;
case Mon:cout << "Monday" << endl;
break;
case Tue:cout << "Tuesday" << endl;
break;
case Wed:cout << "Wendsday" << endl;
break;
case Thu:cout << "Thursday" << endl;
break;
case Fri:cout << "Friday" << endl;
break;
case Sat:cout << "Sataday" << endl;
break;
default:cout << "Error" << endl;
break;
};
yesterday = (Week)(today - 1); //赋值要进行类型强制转换
cout << "Yesterday is ";
switch (yesterday)
{
case Sun:cout << "Sunday" << endl;
break;
case Mon:cout << "Monday" << endl;
break;
case Tue:cout << "Tuesday" << endl;
break;
case Wed:cout << "Wendsday" << endl;
break;
case Thu:cout << "Thursday" << endl;
break;
case Fri:cout << "Friday" << endl;
break;
case Sat:cout << "Sataday" << endl;
break;
default:cout << "Error" << endl;
break;
};
}
return 0;
}