枚舉類型enum:
1、為什要用枚舉類型?
如果變量中需要幾種可能存在的值,那么就可以定義為枚舉類型,就是將變量或對象可能存在的值一一列舉出來。此外,對一些只有有限的幾種可能值的數據對其合法性的檢查也十分方便。
2、枚舉類型聲明形式:enum 枚舉類型名 {變量值列表};
列如 enum Weekday{sunday,monday,tuesday,wednesday,thursday,friday,saturday};
它具有默認值從0開始依次為0、1、2……其中對於枚舉元素按常量處理對其進行賦值是錯誤的,列如定義“sunday=0;”是非法的。若想定義sunday不從0定義,便可在聲明類型時直接定義,但后面未定義的變量的值將以前面最近的變量定義的數為參考依次往后。列如
enum Weekday {sunday=7,monday,tuesday,wednesday,thursday,friday,saturday};
上述枚舉中monday的值為8。
3、強制類型轉換:因為枚舉相當於是整數的子集,因此整數值不能直接賦值給枚舉變量,需進行強制轉換;此外該賦值的整數在枚舉定義范圍內應存在才能轉換成功。
以下是錯誤代碼:
```
enum Weekday{Sun,Mon,Tue,Wed,Thu,Fri,Sat};
Weekday day1,day2;
day2=1; 未進行強制轉換
```
正確代碼:
(int型轉換成枚舉型)
```
Weekday day1,day2;
int a=1;
day2=(Weekday)a; 進行強制轉換
```
(不從0開始定義)
```
enum Weekday{Sun=7,Mon=1,Tue,Wed,Thu,Fri,Sat};
```
(枚舉型轉換成int型)
```
Weekday day1=Weekday.Mon;
int a=day1;
```
以下為枚舉強制類型轉換式列的運行過程