枚举类型教案设计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; }