文章目录
基本定义
举个例子,比如:一星期有 7 天, 请定义数据表示星期一到星期天.
传统方法
使用#define 来完成
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
#define FRI 5
#define SAT 6
#define SUN 7
使用枚举
#include <stdio.h>
void main() {
enum DAY
{
MON=1, TUE=2, WED=3, THU=4, FRI=5, SAT=6, SUN=7
}; // 这里DAY 就是枚举类型, 包含了7个枚举元素
enum DAY day; // enum DAY 是枚举类型, day 就是枚举变量
day = WED; //给枚举变量 day 赋值,值就是某个枚举元素
printf("%d",day);// 3 , 每个枚举元素对应一个值
getchar();
}
枚举的遍历
C 语言中,枚举类型是被当做 int 或者 unsigned int 类型来处理的, 枚 举类型必须连续是可以实现有条件的遍历。以下实例使用 for 来遍历枚举的元素。
#include <stdio.h>
enum DAY {
MON=1, TUE, WED, THU, FRI, SAT, SUN //如果没有给赋值,就会按照顺序赋值
} day; // 表示 定义了一个枚举类型 enum Day ,同时定义了一个变量 day(类型是 enum DAY)
int main() {
// 遍历枚举元素, 枚举的每个元素都对应数值
//day++ 会给出警告,但是可以运行
for (day = MON; day <= SUN; day++) { //SUN = 7
printf("枚举元素:%d \n", day); // 1, 2, 3, 4,5,6,7
}
//day = FRI;
//printf("%d", day); // 10
getchar();
return 0;
}
枚举在switch中的使用
#include <stdio.h>
void main() {
enum SEASONS {SPRING=1, SUMMER, AUTUMN, WINTER}; //定义枚举类型 enum SEASONS
enum SEASONS season;//定义了一个枚举类型变量 season(类型 enum SEASONS )
printf("请输入你喜欢的季节: (1. spring, 2. summer, 3. autumn 4 winter): ");
scanf("%d", &season);
switch (season) {
case SPRING:
printf("你喜欢的季节是春天");
break;
case SUMMER:
printf("你喜欢的季节是夏天");
break;
case AUTUMN:
printf("你喜欢的季节是秋天");
break;
case WINTER:
printf("你喜欢的季节是冬天");
break;
default:
printf("你没有选择你喜欢的季节");
}
getchar();
getchar();
}
枚举类型使用注意事项和细节