枚举类型是为了提高程序的可读性和可维护性。
比如:我们根据需要处理不同的分支,每个分支用数字1、2、3....来表示,
经过一段时间之后,总是会忘记,这些数字代表的分支的意义,而且添加新的分支,
也经常因为数字使用混乱而忘记。枚举类型实际上给每个类型分配了一个整形变量,这样我们可以使用有意义的命名来使用整形。
枚举类型就是为了解决这种场景下程序的可读性和和可维护性而提出的。
比如我们需要用不同的颜色分支,那么我们就可以像下面这样使用枚举定义:
当我们需要添加其他颜色分支的时候,枚举类型的属性会给他自动增加。
还有一种情况,我们在枚举类型种,要根据需要给各种类型中间添加数字,这样我们可以给每种类型人为的指定初始值。而未指定的枚举类型,会根据上一个类型指定的数值而递增,方便程序维护。
实际上,枚举类型当我们使用的时候,根本不需要关系,他具体代表的那个数字,因为在一个应用种,他总是代表着一个唯一的数字,即使我们在中间添加了别的类型,编译器也总能正确的找到我们需要操作的指定的类型。
源码:
// Len_enum.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
enum GROUP_1
{
red,
green,
blue,
yellow
};
enum GROUP_23
{
GROUP2_1 = 100,
GROUP2_2,
GROUP3_1 =200,
GROUP3_2
};
int main()
{
printf("\n第一组enum定义:");
printf("\nred=%d", red);
printf("\ngreen=%d", green);
printf("\nblue=%d", blue);
printf("\nyellow=%d", yellow);
printf("\n\n第二组enum定义:");;
printf("\nGROUP2_1=%d", GROUP2_1);
printf("\nGROUP2_2=%d", GROUP2_2);
printf("\nGROUP3_1=%d", GROUP3_1);
printf("\nGROUP3_2=%d", GROUP3_2);
printf("\n\n请输入0(red)、1(green)、2(blue)或3(yellow):");
int i = 0;
scanf_s("%d", &i);
switch (i)
{
case 0://red:
printf("你选中了执行 red 分支");
break;
case 1://green:
printf("你选中了执行 green 分支");
break;
case 2://blue:
printf("你选中了执行 blue 分支");
break;
case 3://yellow:
printf("你选中了执行 yellow 分支");
break;
default:
printf("你选中了执行 default 分支");
break;
}
printf("\n\n");
}
执行结果: