4-3 固定内容的容器:枚举
本节编程练习不计算学习进度,请电脑登录imooc.com操作

固定内容的容器:枚举

有的同学可能会想到用一个 int 变量来存放,星期一就用数字 1 表示,星期二就用数字 2 表示,以此类推,星期天就用数字 7 来表示

#include <stdio.h>

int main(int argc,char **argv)
{
    int week = 1; // 1 来表示星期一
    return 0;
}

这样做肯定是行得通的,但是有些时候如果不注意,会产生一些问题。例如:

#include <stdio.h>

int main(int argc,char **argv)
{
    int week = 1; // 1 来表示星期一

    week = 8;

    return 0;
}

也许你写程序写着写着突然昏了头,将 week 赋值成了 8,那么这段程序是完全可以运行的,但是将会造成不可预期的 bug。

那么在 C++ 中,我们应该如何处理这些例如星期这样,已经可以确定数据具体有哪些的数据呢?

为了能让我们在处理这些数据的时候更加清晰明了,减少犯错误的机会,C++ 内置了一种特殊的类型,那就是枚举类型。

定义枚举类型

那么我们就还是用星期为例,先来定义一个星期枚举类:

enum Week 
{
    Mon, // 星期一
    Tue, // 星期二
    Wed, // 星期三
    Thu, // 星期四
    Fri, // 星期五
    Sat, // 星期六
    Sun, // 星期日
};

那么应该如何让使用呢?

enum Week 
{
    Mon, // 星期一
    Tue, // 星期二
    Wed, // 星期三
    Thu, // 星期四
    Fri, // 星期五
    Sat, // 星期六
    Sun, // 星期日
};

int main(int argc,char **argv)
{
    Week week = Week::Fri;

    return 0;
}

在这段程序里,week 这个枚举变量,只能是定义好的 7 个值,不能是其他的值,而且在赋值的时候,你可以直接看出来这个值是什么,而不用再去和数字进行对应。这样就可以最大限度得减少出错的可能性了。

对于例如星期,季节,性别之类的概念,我们应该优先使用枚举类型。

任务

  1.  
下一节