栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

十、C enum枚举

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

十、C enum枚举

文章目录
  • 一、引言
  • 二、代码实操
    • 2.1 枚举变量的定义
    • 2.2 枚举变量的遍历
    • 2.3枚举在switch中的应用
    • 2.4 综合应用

一、引言
  • 格式:enum 枚举名 {元素1,元素2,…};
    一组数据,后面的比前面的值大一,如果直接使用宏定义,那么效率很低,为此,C语言中引入枚举类型。在C语言中,第一个枚举成员的默认值为整型的0,后面的值在前面的值的基础上加一
二、代码实操 2.1 枚举变量的定义
  • 1.先定义枚举类型,再定义枚举变量
    enum DAY{
        MON = 1, TUE, WED, THU, FRI, SAT, SUN
    };
    
    enum DAY day;//可以将enum DAY 看做是一种数据类型的名称
    
  • 2.定义枚举类型的同时,定义枚举变量
    enum DAY{
        MON = 1, TUE, WED, THU, FRI, SAT, SUN
    }day;
    
  • 3.省略枚举名称,直接定义枚举变量
    enum {
        MON = 1, TUE, WED, THU, FRI, SAT, SUN
    }day;
    
  • 4.代码实现:
    #include
    enum DAY{
            MON = 1, TUE, WED, THU, FRI, SAT, SUN
        };
    
    int main(){
        //枚举类型被当做int或unsigned int来处理
        //所以如果你定义了一个枚举类型,也可以对其
        //整数相关的操作
        enum DAY day;
        enum DAY day1;
        day = FRI;
        day1 = 1;//day1位整数,可以直接赋值
        printf("%dn",day);
        printf("%d",day1);
    }
    
  • 5.运行结果:
    5
    1
    
2.2 枚举变量的遍历

在C语言中,枚举变量被当做整数来处理,是无法遍历的,但是,当枚举变量是顺序时,可以遍历。在C语言中,枚举类型每次都是在前面值的基础上加一,如果数值不连续,那么遍历的值就有可能比枚举元素多或者少

  • 代码实现:
    #include
    enum DAY{
            MON = 1, TUE, WED, THU, FRI, SAT, SUN=7
        };
    enum DAY1{
            MON1 = 1, TUE1, WED1, THU1, FRI1, SAT1, SUN1=3
        };
    enum DAY2{
            MON2 = 1, TUE2, WED2, THU2, FRI2, SAT2, SUN2=10
        };
    
    int main(){
        enum DAY day;
        enum DAY1 day1;
        enum DAY2 day2;
        for(int day = MON; day <= SUN; day++){
            printf("day变量值:%dn",day);
        }
        printf("n");
        for(int day1 = MON; day1 <= SUN1; day1++){
            printf("day1变量值:%dn",day1);
        }
        printf("n");
    
        for(int day2 = MON; day2 <= SUN2; day2++){
            printf("day2变量值:%dn",day2);
        }
    }
    
  • 运行结果:
    day变量值:1
    day变量值:2
    day变量值:3
    day变量值:4
    day变量值:5
    day变量值:6
    day变量值:7
    
    day1变量值:1
    day1变量值:2
    day1变量值:3
    
    day2变量值:1
    day2变量值:2
    day2变量值:3
    day2变量值:4
    day2变量值:5
    day2变量值:6
    day2变量值:7
    day2变量值:8
    day2变量值:9
    day2变量值:10
    
2.3枚举在switch中的应用
  • 代码实现:
    #include
    enum DAY{
            MON = 1, TUE, WED
        };
    
    void main(){
        enum DAY day;
        printf("请输入星期几:");
        scanf("%u",&day);
        switch (day)
        {
        case MON:
            printf("周一n");
            break;
        case TUE:
            printf("周二n");
            break;
        case WED:
            printf("周三n");
            break;
        
        default:
            printf("输入错误n");
            break;
        }
    }
    
  • 运行结果:
    d102@d102-W65KJ1-KK1:/media/d102/EPAN/Desktop/c++_ubuntu/c++_01/workspace$ gcc test1.c -o test
    d102@d102-W65KJ1-KK1:/media/d102/EPAN/Desktop/c++_ubuntu/c++_01/workspace$ ./test
    请输入星期几:3
    周三
    
2.4 综合应用
  • 代码实现:
#include
void main()
{
    //enum是简化了多行 #define
    enum DAY
    {
        MON = 1, TUE, WED=7, THU, FRI=-9, SAT, SUN
    } day;

    // 遍历枚举元素
    for (day = MON; day <= SUN; day++) {
        printf("枚举元素:%d n", day);
    }
    printf("枚举元素:%d n", WED);
    day=17;                              //TUE=2;不可更改
    printf("枚举元素:%d n", THU);
    printf("枚举元素:%d n", SUN);

    enum DAY weekend=MON;                //定义后必须赋初值才能使用
    printf("枚举元素:%d n", weekend);
    enum DAY weekend1;                //默认值为0
    printf("枚举元素:%d n", weekend1);
    printf("枚举元素:%d n", day);
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1011241.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号