枚舉類型教案設計ios
問題導入:Q:表示一週的七天能用什麼數據類型表示?c++
A:int類型就能夠,1234567就能表示一週了。spa
Q:這樣輸入8則雖是合法整數但顯然不是一週內,這樣無法經過數據類型判斷是否是合法,咱們應該用什麼數據類型呢?設計
A:能夠只用1到7嗎?有這種數據類型嗎? c++是容許取某數據類型的子集做爲新定義的數據類型code
枚舉類型:用戶自定義的一種數據類型(與系統自定義好的——int ,float等相對)需聲明時將變量的可取值在變量列表一一列出。blog
聲明形式:enum 枚舉類型名 {變量值列表}it
enum Weekday{SUN,MON,TUE,WED,THU,FRI,SAT}
注:1.他是個整型的子集——實質 所以枚舉值能夠作關係運算 且聲明時若是不定義值則會依次取默認值{0,1,2,3,4,5,6}io
2.但枚舉元素要視爲常量 除定義外不能進行賦值,而定義中從開始定義的一項依次加1 (定義SUN爲1,則MON爲2,不定義默認爲SUN爲0)class
但做爲一個常量,枚舉元素能夠給其餘變量賦值。stream
3.整數值要賦給枚舉變量要進行強制轉換,若是不在枚舉值的範圍內則強轉失敗。
例:體育比賽的結果又四種可能:WIN,LOSE,TIE,CANCEL編寫程序輸出這四種狀況、
一共四種選擇能夠聲明一個枚舉類型的變量存放比賽的結果。
#include <iostream>
using namespace std; enum GameResult {WIN,LOSE,TIE,CANCEL}; int main(){ GameResult result; GameResult omit=CANCEL; /*此時加不加enum均可以 for (int count =WIN;count<=CANCEL;count++){ result=GameResult(count); /*對枚舉元素賦值要先強轉 if(result==omit) count<<"The game was cancelled"<<endl; else{ count<<"The game was palyed"; if(result==WIN) count<<"and we won!"; if(result==LOSE) count<<"and we lost."; count<<end; } } return 0; }