【C语言】枚举(enum)
一、枚举语法的定义
枚举(enum)是一种数据类型,它的语法定义格式为:
enum 枚举名{枚举元素1,枚举元素2,......};
例如,一个星期有七天,使用枚举法进行定义为:
enum Day
{
Mon,Tue,Wed,Thu,Fri,Sat,Sun
};
需要注意的是,第一个枚举元素的默认值为0,后面的枚举元素的值在上一枚举元素的值上加1。因此,Mon=0,Tue=1,Wed=2,Thu=3,Fri=4,Sat=5,Sun=6.
但是,在定义枚举类型时,可以改变枚举元素的值:
enum Day
{
Mon=1,Tue,Wed,Thu,Fri,Sat,Sun
};
此时,Mon=1,Tue=2依次往后推;
enum Day
{
Mon,Tue,Wed=3,Thu,Fri,Sat,Sun
};
此时,Mon=0,Tue=1,Wed=3,Thu=4,Fri=5,Sat=6,Sun=7.
二、枚举变量的定义
枚举变量有三种定义方式:①先定义枚举类型,再定义枚举变量;②定义枚举类型的同时定义枚举变量;③没有枚举名称,直接定义枚举变量。
①
enum Day
{
Mon,Tue,Wed,Thu,Fri,Sat,Sun
};
enum Day day;
②
enum Day
{
Mon,Tue,Wed,Thu,Fri,Sat,Sun
}day;
③
enum
{
Mon,Tue,Wed,Thu,Fri,Sat,Sun
}day;
三、枚举实例
①使用循环语句来遍历枚举的元素:
#include <stdio.h>
enum Day
{
Mon=1,Tue,Wed,Thu,Fri,Sat,Sun
}day;
int main()
{
for(day=Mon;day<=Sun;day++)//遍历枚举的元素
{
printf("星期:%d
",day);
}
}
输出结果为:
星期:1 星期:2 星期:3 星期:4 星期:5 星期:6 星期:7
②使用switch选择枚举元素:
#include <stdio.h>
enum Day
{
Mon=1,Tue,Wed,Thu,Fri,Sat,Sun
}day;
int main()
{
printf("请选择你最喜欢哪一星期:(1.Mon,2.Tue,3.Wed,4.Thu,5.Fri,6.Sat7.Sun):");
scanf("%u",&day);//注意这里的输入是使用%u
switch(day)
{
case Mon:
printf("你喜欢的是星期一");
break;
case Tue:
printf("你喜欢的是星期二");
break;
case Wed:
printf("你喜欢的是星期三");
break;
case Thu:
printf("你喜欢的是星期四");
break;
case Fri:
printf("你喜欢的是星期五");
break;
case Sat:
printf("你喜欢的是星期六");
break;
case Sun:
printf("你喜欢的是星期天");
break;
default:
printf("你没有选择你喜欢星期");
}
return 0;
}
输出结果为:
请选择你最喜欢哪一星期:(1.Mon,2.Tue,3.Wed,4.Thu,5.Fri,6.Sat7.Sun):6 你喜欢的是星期六
