智慧团建网站登录平台官网建筑模板规格尺寸表详细
文章目录
- 一. 枚举定义
- 二. 实践理解
- 三. 加强理解
- 四.强化理解
- 4.1 for循环
- 4.2 枚举与switch结合
- 4.3 枚举与显式赋值
- 4.4 枚举与数组结合
- 五 总结
一. 枚举定义
-
枚举
-
--将变量的值一一列举出来
-
每一个枚举元素由系统定义了一个用序号表示的数值,从0开始,分别为0 1 2
-
语法:
enum 枚举名{枚举元素};
二. 实践理解
eg:比如一周有七天,我们就可以使用枚举类型来完善代码如下:
#include "stdio.h"
enum weekday{mon,tue,wed,thu,fri,sat,sun
};int main(){enum weekday one; //枚举声明printf("%d ",one); //默认指向第一个元素enum weekday two;two = wed;printf("%d ",two);return 0;
}
在这儿输出来的结果就可以得出我们的代码最后输出:
0 2
这也就说明我们最后输出的是整型.
- 注意:
- 如果你不想是0开始,可以把mon赋值1或者每一次输出加1
#include "stdio.h"
enum weekday{mon=1,tue,wed,thu,fri,sat,sun
};int main(){enum weekday one=mon;printf("%d ",one); //默认指向第一个元素enum weekday two;two = wed;printf("%d ",two);return 0;
}
输出结果:
1 3
三. 加强理解
前面我们学过结构体的代码和编写结构体代码,不懂结构体点击这儿我们声明的时候都是:
c结构体 结构体类型 结构体变量名;
这就很麻烦;同时我们也不难发现,在枚举的过程中也是一样的,就会显得相当麻烦,因此我们要上升强度,我们要使用我们以前所用到过的typedef关键字来改一个名字
代码如下:
#include "stdio.h"
typedef enum {mon,tue,wed,thu,fri,sat,sun
}weekday;int main(){weekday one;printf("%d ",one); //默认指向第一个元素weekday two;two = wed;printf("%d ",two);return 0;
}
不难发现,使用typedef关键字后我们的更容易理解代码了;
四.强化理解
4.1 for循环
题目:定义一个表示颜色的枚举类型,并输出每种颜色对应的整数值。
#include <stdio.h>enum Color {RED, // 0GREEN, // 1BLUE // 2
};int main() {enum Color c;// 遍历枚举值for (c = RED; c <= BLUE; c++) {printf("颜色值: %d\n", c);}return 0;
}
结果:
颜色值: 0
颜色值: 1
颜色值: 2
4.2 枚举与switch结合
题目:定义一个表示星期的枚举类型,根据输入的枚举值输出对应的星期名称。
#include <stdio.h>enum Weekday {MON, TUE, WED, THU, FRI, SAT, SUN
};int main() {enum Weekday today;today = WED; // 假设今天是星期三switch (today) {case MON:printf("星期一\n");break;case TUE:printf("星期二\n");break;case WED:printf("星期三\n");break;case THU:printf("星期四\n");break;case FRI:printf("星期五\n");break;case SAT:printf("星期六\n");break;case SUN:printf("星期日\n");break;default:printf("无效的枚举值\n");}return 0;
}
结果:
星期三
4.3 枚举与显式赋值
题目:定义一个表示 HTTP 状态码的枚举类型,包括 200、404、500,并输出状态码对应的含义。
#include <stdio.h>enum Status {OK = 200,NOT_FOUND = 404,SERVER_ERROR = 500
};int main() {enum Status status;status = NOT_FOUND; // 假设当前状态是 404switch (status) {case OK:printf("请求成功\n");break;case NOT_FOUND:printf("资源未找到\n");break;case SERVER_ERROR:printf("服务器错误\n");break;default:printf("未知状态码\n");}return 0;
}
结果:资源未找到
4.4 枚举与数组结合
题目:定义一个表示季节的枚举类型,并将其与字符串数组结合,输出对应季节的名称。
#include <stdio.h>enum Season {SPRING, SUMMER, AUTUMN, WINTER
};int main() {const char *seasonNames[] = {"春天", "夏天", "秋天", "冬天"};enum Season season = AUTUMN; // 假设当前是秋天printf("当前季节是:%s\n", seasonNames[season]);return 0;
}
结果:
当前季节是:秋天
五 总结
枚举的作用:提高代码可读性,为一组整数值赋予有意义的名称。枚举的特点:默认从 0 开始递增,支持显式赋值,本质上是整数。枚举的使用场景:表示有限的状态、类型或选项,如星期、季节、状态码等。伙伴们可以自己感受一下;创作不易,多多支持.