枚举类型的声明
例如:
性别有:男生,女生
月份有:十二个月
三原色:也是可以一一列举
以上这些数据类型的表示就可以使用枚举
enum Day//星期
{
Mon,
Tue,
Wed,
Thur,
Fri,
Sat,
Sun
};
enum Sex//性别
{
MALE,
FMALE,
SECRET
};
enum Color//颜色
{
RED,
GREEN,
BLUE
};
以上的定义,enum Day ,enum Sex ,enum Color都是枚举类型
‘ {} ’中的内容就是枚举类型的可能取值,也叫枚举常量。
例如:
enum Sex
{
//以下是枚举的三种取值
//他们都是常量,称为枚举常量
MALE,
FMALE,
SECRET
};
int main()
{
enum Sex sex1 = MALE;//将MALE的值赋给sex1
enum Sex sex2 = FEMALE;
return 0;
}
打印出枚举常量的值,显示就是从下标为0开始的,依次按照顺序进行排列
enum Sex
{
MALE,
FMALE,
SECRET
};
int main()
{
printf("%d\n",MALE); //0
printf("%d\n",FEMALE);//1
printf("%d\n",SECRET);//2
return 0;
}
但是也可以用以下的定义方式改变他们的值
#include<Stdio.h>
enum Sex
{
MALE=3,
FEMALE,
SECRET
};
int main()
{
printf("%d\n",MALE); //3
printf("%d\n",FEMALE);//4
printf("%d\n",SECRET);//5
return 0;
} //定义了第一个之后,会接着往下依次进行排列相加
如果是从中间进行定义的,那么第一个还是会从下标位0开始
#include<Stdio.h>
enum Sex
{
MALE,
FEMALE=3,
SECRET
};
int main()
{
printf("%d\n",MALE); //0
printf("%d\n",FEMALE);//3
printf("%d\n",SECRET);//4
return 0;
}
方便的是,枚举类型在主函数是不可以与整型进行赋值的,但是这个方法就可以对枚举常量进行赋值,然后再定义。
#include<Stdio.h>
enum Sex
{
MALE=5,
FEMALE=3,
SECRET
};
int main()
{
enum Sex sex1 = MALE;
enum Sex sex2 = FEMALE;
printf("%d\n",sex1); //5
printf("%d\n",sex2); //3
return 0;
}
枚举类型的优点:
为什么要使用枚举?
我们可以是使用 #define 定义常量,为什么非要使用枚举?
枚举的优点:
1.增加代码的可读性和可维护性。
2.和#define定义的标识符比较枚举有类型检查,更加严谨。
3.便于调试,预处理阶段会删除#define定义的符号。
4.使用方便,一次可以定义多个常量
5.枚举常量是遵循作用域规则的,枚举声明在函数内,只能再函数内使用。
枚举类型的使用
比如:完成整数的加减乘除。但是以下的代码,需要一一对应其数字以及一些计算的方式,可读性不高
void menu()
{
printf("****************\n");
printf("**1.Add**2.Sub**\n");
printf("**3.Mul**4.Div**\n");
printf("****************\n");
}
int main()
{
int input = 0;
do
{
menu();
printf("请选择:");
scanf("%d",&input);
switch(input)//switch语句,进入所选的函数
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 0:
printf("退出:\n");
default:
printf("选择错误,请从新选择:\n");
}
} while(input);
return 0;
}
所以就可以使用enum来增加代码的可读性
enum Option
{
EXIT,//下标从0开始
ADD, //1
SUB, //2
MUL, //3
DIV //4
};
void menu()
{
printf("****************\n");
printf("**1.Add**2.Sub**\n");
printf("**3.Mul**4.Div**\n");
printf("****************\n");
}
int main()
{
int input = 0;
do
{
menu();
printf("请选择:");
scanf("%d",&input);
switch(input)//switch语句,进入所选的函数
{
case ADD://完成的是加法操作,在调用加法函数
break;
case SUB:
break;
case MUL:
break;
case DIV:
break;
case 0:
printf("退出:\n");
defult:
printf("选择错误,从新选择\n") ;
break;
}
} while(input);
return 0;
}
标签:case,语言,自定义,enum,Sex,枚举,printf,MALE
From: https://blog.csdn.net/2401_83201682/article/details/143354824