枚举类型定义方法
- 语句格式
enum <枚举类型名>{枚举常量表}; - eg:
enum Week{Sun, Mon, Tes, Wed, Thu, Fri, Sat};
//Sun=0,Mon=1,Tes=2,Wed=3,Thu=4,Fri=5,Sat=6
enum Coin {PENNY=1, NICKEL=5, DIME=10, QUARTER=25, HALF_DOLLAR=50, DOLLAR=100};
*enum Color {red, yellow, blue=1, white, black};
//red=0,yellow=1,blue=1,white=2,black=3
- 注意:
枚举常量是以标识符形式表示的整型量,而不是字符串或字面常量
枚举变量声明方法
- 语句格式
enum <枚举类型名> <枚举变量列表>;
- 声明时机
- 定义枚举类型后声明
enum COLOR background,foreground;
- 定义枚举类型同时声明
enum Week {Sun=7, Mon=1, Tes, Wed, Thu, Fri, Sat} begin, end;
- 定义枚举类型后声明
枚举变量的使用方法
enum Week {Sun=7,Mon=1,Tes,Wed,Thu,Fri,Sat} begin, end;
cin>>background; //直接输入枚举变量,错误
begin=1; //整数赋给枚举变量,错误
begin=Mon; //将枚举常量赋给枚举变量,正确
end = Sun;
begin = end; //相同类型的枚举变量赋值正确
begin=(Week)1; //整数强制类型转换后赋给枚举变量,正确
int a=begin; //将枚举变量赋给整型变量,正确
int b=Sun; //将枚举常量赋给整型变量,正确
cout<<begin; //可以直接输出枚举变量,正确
cout<<end-begin; //枚举变量可以参加数学运算,正确
三色球组合
口袋中有红、黄、蓝3种颜色的小球,如果每次从口袋中 取出3种不同颜色的小球,编写程序,打印出每种组合。
enum color{red,yellow,blue};
int temp,i,j;
for(i=red;i<=yellow;i++){
for(j=i+1;j<=blue;j++) {
for(int t=0;t<2;t++){
switch(t){
case 0: temp=i; break;
case 1: temp=j; break;
}
switch((enum color)temp){
case red: cout<<"red"<<"\t"; break;
case yellow: cout<<"yellow"<<"\t"; break;
case blue:
cout<<"blue"<<"\t"; break;
}
}
cout<<"\n";
}
}
本例学到
- 枚举类型定义方法
enum color{red,yellow,blue};
- 枚举变量声明方法
switch((enum color)temp)
- 枚举变量使用方法
for(i=red;i<=yellow;i++)
多路分支
switch(t){ case 0: temp=i; break; case 1: temp=j; break; }
循环嵌套
for(i=red;i<=yellow;i++) for(j=i+1;j<=blue;j++) for(int t=0;t<2;t++)