【C++ | Cpp 】 数据类型| 枚举 | 介绍 | enumeration Enum)

【C++ | Cpp 】 数据类型| 枚举 | 介绍 | enumeration Enum)

C++ 枚举类型(数据类型)
关键字 : enum

语法

定义枚举类

enum 标识符1 {
    枚举常量1(标识符) = 1,
    枚举常量2(标识符) = 2,
    枚举常量3(标识符) = 3
} (可以在这里初始化一个枚举对象);

enum 标识符2 {
    枚举常量1,
    枚举常量2,
    枚举常量3
};

以上这个自动标号 枚举常量表 的标号从0开始

创建枚举变量

enum 标识符1 对象名称 = 枚举常量;

注意

  1. 枚举常量不能是数据类型 只能是标识符
  2. 枚举变量可以给整数赋值,但是整数不能给枚举变量赋值
  3. 枚举变量间可以进行比较(== != < <= > >= )
  4. 枚举变量可以直接输出 不能直接输入
  5. 不同类型的枚举变量不崩相互赋值
  6. 枚举变量一半使用 switch 语句进行处理
  7. 不同类型的枚举变量可以进行比较,比较的是其在对应的常量表的标号

代码展示

//带有 = 整型参数
enum Session{
     spring = 1, //spring 是一个标识符
     summer = 2,
     autumn = 3,
     winter = 4
 } ;
//不带有整型参数的
//常量表 自动分配 从0开始
enum Color{
    red,
    blue,
    green
};

int main() {
    enum Color color = blue;//green 标识符的常量为 1
    std::cout << color << '\n';

    unsigned int num;
    //C++ 内建的输入流
    std::cin >> num;

    Session s = spring;

    //柑橘输入的数字分配不同的枚举值
    switch(num) {
        case 0:
            color = red;
            break;
        case 1 :
            color = blue;
            break;
        case 2:
            color = green;
            break;
        default:
            std::cout << "出错";
    }

    //判断枚举的结果
    switch (color) {
        case red:
            std::cout << "It's Red";
            break;
        case blue:
            std::cout << "It's Blue";
            break;
        case green:
            std::cout << "It's Green";
            break;
        }

    enum Session s1;
    //直接用标识符给枚举数据类型变量赋值
    s1 = spring;
    //可以将枚举变量给 int 变量赋值
    //赋值的内容就是枚举值对应的数字
    int s_num = s1;//1
    std::cout << s_num << '\n';
    //invalid conversion from 'int' to 'Session'
    //不能使用整数给枚举变量赋值
    // s1 = 2;

    //枚举变量可以进行比较
    enum Session s2 = summer;
    if(s1 != s2){
        std::cout << "季节不一样" << '\n';
    }
    //不同类型的枚举值也可以进行比较
    //比较方式是直接比较枚举变量所在枚举常量表的标号
    if(s2 != color){
        std::cout << 'H' << '\n';
    }


    return 0;
}
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值