【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 你喜欢的是星期六
经验分享 程序员 微信小程序 职场和发展