爲了在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;
}