首页 > 其他分享 >枚举类型(enum)的作用和用法

枚举类型(enum)的作用和用法

时间:2025-01-17 16:31:52浏览次数:3  
标签:常量 Color enum 用法 枚举 类型 定义

简介枚举类型

枚举类型(enum)是一种用户定义的数据类型,用于定义一组具有相关性的常量。枚举类型使代码更加可读和可维护,因为它为一组整型常量提供了有意义的名字。

作用

增强代码可读性:通过为一组相关的常量赋予有意义的名称,使代码更易于理解和维护。比如,定义一个表示颜色的枚举类型,可以用RedGreenBlue等代替具体的数值,这样在阅读代码时能更直观地知道每个值的含义。

提高代码可维护性:当需要修改或扩展一组相关的常量时,只需在枚举类型的定义处进行修改,而不必在所有使用这些常量的地方逐一修改。

限制取值范围:枚举类型规定了变量的取值只能是枚举中定义的常量,从而避免了非法赋值,提高了程序的健壮性。

用法

定义枚举类型:使用enum关键字来定义枚举类型,其语法格式为:

enum class EnumName {
    Value1,
    Value2,
    Value3,
    // 可以继续添加更多的值
};

EnumName是枚举类型的名称,Value1Value2Value3等是枚举常量。class关键字用于指定枚举类型的作用域,它使得枚举常量的作用域被限制在枚举类型内部。 

声明枚举变量:定义枚举类型后,可以声明该类型的变量

variableName = EnumName::Value2;

variableName是枚举变量的名称。

给枚举变量赋值:可以将枚举常量赋给枚举变量,例如:

variableName = EnumName::Value2;

 遍历枚举类型:可以使用for循环来遍历枚举类型的所有值

例如:

#include <iostream>

enum class Color {
    Red,
    Green,
    Blue
};

int main() {
    // 遍历Color枚举类型的所有值
    for (int i = 0; i < static_cast<int>(Color::Blue) + 1; ++i) {
        Color color = static_cast<Color>(i);
        std::cout << "Color value: " << static_cast<int>(color) << std::endl;
    }

    return 0;
}

上述代码中,使用for循环和static_castint类型的值转换为Color枚举类型的值,从而遍历了Color枚举类型的所有值。

枚举的初始化
默认情况下,枚举的默认值为1,且逐渐递增。

例:

#include<stdio.h>
enum sssss{
    a,
    b,
    c,
    d,
    ……
 
}//a=1,b=2,c=3……
可以手动进行给值(可完全给值,也可部分给值)。

例;

#include<stdio.h>
enum sssss{
    a=1,
    b=5,
    c=6,
    d,
    e=7,
    f,//没有值时,默认比上一个值大1   f=8
    g,
    ……
 
}
  • 枚举类型作为函数参数和返回值:可以将枚举类型作为函数的参数和返回值。例:
#include <iostream>

enum class Color {
    Red,
    Green,
    Blue
};

// 函数接受一个Color枚举类型的参数
void printColor(Color color) {
    switch (color) {
        case Color::Red:
            std::cout << "The color is red." << std::endl;
            break;
        case Color::Green:
            std::cout << "The color is green." << std::endl;
            break;
        case Color::Blue:
            std::cout << "The color is blue." << std::endl;
            break;
        default:
            std::cout << "Invalid color." << std::endl;
    }
}

// 函数返回一个Color枚举类型的值
Color getRandomColor() {
    // 这里可以使用随机数生成器来返回一个随机的Color值
    // 简单起见,这里直接返回Red
    return Color::Red;
}

int main() {
    Color myColor = getRandomColor();
    printColor(myColor);

    return 0;
}

上述代码中,printColor函数接受一个Color枚举类型的参数,并根据参数的值输出相应的颜色名称。getRandomColor函数返回一个Color枚举类型的值。在main函数中,调用getRandomColor函数获取一个随机颜色,并将其作为参数传递给printColor函数进行输出。

标签:常量,Color,enum,用法,枚举,类型,定义
From: https://blog.csdn.net/2301_78999095/article/details/145189607

相关文章

  • C#中常见的锁以及用法--18
    目录一.C#中存在的锁二.锁的作用三.锁的概念和定义关于锁的完整代码示例代码逐层剖析:全局变量与同步变量Lock(锁)关键字示例Monitor(监视器锁)示例Mutex(互斥量)示例(支持跨进程同步)SemaphoreSlim(信号量)示例ReadWriterLockSlim(读写锁)示例SpinLock(自旋锁)示......
  • 【转】[JavaScript] 数组的 filter 用法
    转自:kimi.aifilter方法用于创建一个新数组,新数组中的元素是通过测试指定条件(由提供的函数实现)的所有元素。以下是其详细用法:基本语法JavaScript复制array.filter(function(currentValue[,index[,array]]){//returntruetokeepelement,falsetoremoveelement......
  • 【转】[JavaScript] 数组的 map 用法
    转自:kimi.aimap方法是数组的一个非常强大的方法,它用于创建一个新数组,新数组中的元素是调用一次提供的函数后的返回值。以下是其详细用法:基本语法JavaScript复制array.map(function(currentValue[,index[,array]]){//returnelementfornewarray,afterexecuting......
  • C语言break和continue用法详解(跳出循环,新手必看)
    使用while或for循环时,如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。C语言break关键字在我原创教程里的《C语言switchcase语句》一文中,我讲了:用 break来跳出switch语句。当break关键字用于while、for循环时,会终止循......
  • C语言typedef用法详解(新手必看)
    C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。起别名的目的不是为了提高程序运行效率,而是为了编码方便。例如有一个结构体的名字是stu,要想定义一个结构体变量就得这样写:structstustu1;struct看起来就是多余的,但不写又会报错。如果为structstu起了......
  • 洛谷题单指南-线段树的进阶用法-P3168 [CQOI2015] 任务查询系统
    原题链接:https://www.luogu.com.cn/problem/P3168题意解读:一个任务管理系统,能够查询在某个时间点运行的任务中优先级最小的k个任务的优先级之和。解题思路:由于总时间n不超过100000,考虑针对所有时刻建立可持久化线段树,根节点为root[i]的线段树维护时刻i的任务情况,节点区间表示......
  • Linux驱动开发:处理空指针错误,ERR_PTR、IS_ERR、PTR_ERR用法
    免责声明:本文内容摘自《Linux设备驱动开发》一书,作者为JohnMadieu,译者为袁鹏飞、刘寿永,由人民邮电出版社出版。本文仅为分享知识和讨论之用,非商业用途。书籍版权归原作者及出版社所有。本人及本博客不对因使用或误用本文内容而产生的任何后果负责。请读者尊重版权,合理使用内容。......
  • c语言随机数rand与srand用法详解
    源文件test.c:#include<stdio.h>#include<stdlib.h>#include<time.h>intmain(){//生成并打印5个随机数for(inti=0;i<5;i++){//生成随机数并打印printf("第%d个随机数:%d\n",i+1,rand());}return0;}注意点:1)当不用srand()函数设置种子时,系统......
  • 如何将元组枚举中关联的变量元素取出来并使用?
    UUUUUUUUUUUUUUUUUUUUUUU在Rust中,枚举(enum)可以包含多种变体,每个变体可以有不同数量的关联值(例如元组形式的值)。如果你想从元组枚举中提取并使用这些关联的元素,可以通过模式匹配(match)或者解构赋值的方式来取出这些值。以下是一个详细的例子,展示了如何从元组枚举中取出元素并使......
  • 洛谷题单指南-线段树的进阶用法-P2617 Dynamic Rankings
    原题链接:https://www.luogu.com.cn/problem/P2617题意解读:动态求区间第k小问题。解题思路:树套树的典型应用,具体阐述参考:https://www.cnblogs.com/jcwy/p/18640914100分代码:#include<bits/stdc++.h>usingnamespacestd;constintN=100005;structOp{charop;......