-
枚举 (enum):为整数赋予有意义的名称 (约 25 分钟)
-
什么是枚举?
- 在编程中,我们经常需要表示一组固定的、相关的常量值
- 例如,一周的七天、交通信号灯的三种状态、游戏角色的不同职业等。
-
枚举是一种用户定义的数据类型,它允许你为一组整型常量赋予有意义的名称。 这样可以提高代码的可读性和可维护性,避免使用难以理解的 magic number (魔法数字)。
-
定义枚举类型
enum Weekday { Monday, // 默认值为 0 Tuesday, // 默认值为 1 Wednesday, // 默认值为 2 Thursday, // 默认值为 3 Friday, // 默认值为 4 Saturday, // 默认值为 5 Sunday // 默认值为 6 };enum关键字表明我们正在定义一个枚举类型。Weekday是这个枚举类型的名称。- 花括号
{}内部列出了枚举常量,用逗号分隔。默认情况下,第一个枚举常量的值为 0,后续常量的值依次递增 1。
-
使用枚举类型
#include <iostream> enum Weekday { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; int main() { Weekday today = Wednesday; // 可以直接使用枚举常量 if (today == Wednesday) { std::cout << "今天星期三,要努力学习!" << std::endl; } // 枚举常量本质上是整型,可以进行比较和运算 if (today > Friday) { std::cout << "今天是周末!" << std::endl; } // 也可以显式获取枚举常量的值 std::cout << "Wednesday 的值是: " << Wednesday << std::endl; // 输出 2 return 0; }- 声明枚举类型的变量与声明其他类型的变量类似。
- 可以直接使用枚举常量来赋值和比较。
- 注意:虽然枚举常量本质上是整型,但最好将枚举类型视为独立的类型,避免将枚举类型的值与普通的整型值进行直接运算,除非有明确的需要。
-
指定枚举常量的值
enum Status { Success = 0, Warning = 10, Error = 20, };- 可以显式地为枚举常量指定整数值。如果只指定部分常量的值,后续常量的值仍然会依次递增。
-
枚举的应用场景
- 表示状态码或错误码。
- 表示选项或模式。
- 提高代码可读性,使代码更易于理解和维护。
-