enum 用法

枚举常量是枚举类型中的值,即枚举值。枚举类型是一种<nobr id="clickeyekey0" style="border-bottom:rgb(102,0,255) 1px dotted; background-color:transparent; color:rgb(102,0,255); text-decoration:underline">用户</nobr>定义的类型,只有用户在程序中定义它后才能被使用。用户通常利用枚举类型定义程序中需要使用的一组相关的符号常量。枚举类型的定义格式为:

enum <枚举类型名> {<枚举表>};

它是一条枚举类型定义语句,该语句以enum保留字开始,接着为枚举类型名,它是用户命名的一个标识符,以后就直接使用它表示该类型,枚举类型名后为该类型的定义体,它是由一对花括号和其中的枚举表所组成,枚举表为一组用逗号分开的由用户命名的符号常量,每个符号常量又称为枚举常量或枚举值。如:

(1) enum color{red, yellow, blue};

(2) enum day{Sun, Mon, Tues, Wed, Thur, Fri, Sat};
Note:最后一个元素后面不要加逗号,否则编译出错。
第一条语句定义了一个枚举类型color,用来表示颜色,它包含三个枚举值red,yellow和blue,分别<nobr id="clickeyekey5" style="border-bottom:rgb(102,0,255) 1px dotted; background-color:transparent; color:rgb(102,0,255); text-decoration:underline">代表</nobr>红色、黄色和兰色。

第二条语句定义了一个枚举类型day,用来表示日期,它包含7个枚举值,分别表示星期日、星期一至星期六。

一种枚举类型被定义后,可以象整型等预定义类型一样使用在允许出现<nobr id="clickeyekey3" style="border-bottom:rgb(102,0,255) 1px dotted; background-color:transparent; color:rgb(102,0,255); text-decoration:underline">数据</nobr>类型的任何地方。如可以利用它定义变量。

(1) enum color c1, c2,c3;

(2) enum day today, workday;

(3) c1=red;

(4) workday=Wed;

第一条语句开始的保留字enum和类型标识符colou表示上述定义的枚举类型color,其中enum可以省略不写,后面的三个标识符c1,c2和c3表示该类型的三个变量,每一个变量用来表示该枚举表中列出的任一个值。

第二条语句开始的两个<nobr id="clickeyekey7" style="border-bottom:rgb(102,0,255) 1px dotted; background-color:transparent; color:rgb(102,0,255); text-decoration:underline">成分</nobr>(成分之间的空格除外)表示上述定义的枚举类型day,同样enum可以省略不写,后面的两个标识符today和workday表示该类型的两个变量,每一个变量用来表示该枚举表中列出的七个值中的任一个值。

第三条语句把枚举值red赋给变量c1,第四条语句把枚举值Wed赋给变量workday。

在一个枚举类型的枚举表中列出的每一个枚举常量都对应着一个整数值,该整数值可以由系统自动确认,也可以由用户<nobr id="clickeyekey1" style="border-bottom:rgb(102,0,255) 1px dotted; background-color:transparent; color:rgb(102,0,255); text-decoration:underline">指定</nobr>。若用户在枚举表中一个枚举常量后加上赋值号和一个整型常量,则就表示枚举常量被赋予了这个整型常量的值。如:

enum day{Sun=7, Mon=0, Tues, Wed, Thur, Fri, Sat};

用户指定了Sun的值为7,Mon的值为0。

若用户没有给一个枚举常量赋初值,则<nobr id="clickeyekey6" style="border-bottom:rgb(102,0,255) 1px dotted; background-color:transparent; color:rgb(102,0,255); text-decoration:underline">系统</nobr>给它赋予的值是它前一项枚举常量的值加1,若它本身就是首项,则被自动赋予整数0。如对于上述定义的color类型,red,yellow和blue的值分别为0,1和2;对于刚被修改定义的day类型,各枚举常量的值依次为7,0,1,2,3,4,5,6。

由于各枚举常量的值是一个整数,所以可把它同一般整数一样看待,<nobr id="clickeyekey4" style="border-bottom:rgb(102,0,255) 1px dotted; background-color:transparent; color:rgb(102,0,255); text-decoration:underline">参与</nobr>整数的各种运算。又由于它本身是一个符号常量,所以当作为输出数据项时,输出的是它的整数值,而不是它的标识符,这一点同输出其他类型的符号常量是一致的。 下面为一个实例:
#include <iostream>
using namespace std;
enum Day {Saturday, Sunday = 0, Monday, Tuesday, Wednesday,Thursday, Friday}; //Saturday = 0 by default, Sunday = 0 as well
void Prnt (Day day) // Print whether a day is a 'Weekend' or a "Weekday".
{
if (day ==0) {
cout << "Weekend" << endl;
}else {cout << "Weekday" << endl; }
}
int main()
{
Prnt( Saturday);
Day day1=Monday;
cout<<day1<<endl;
return 0;
}
运行结果为:
枚举常量是枚举类型中的值,即枚举值。枚举类型是一种<nobr id="clickeyekey0" style="border-bottom:rgb(102,0,255) 1px dotted; background-color:transparent; color:rgb(102,0,255); text-decoration:underline">用户</nobr>定义的类型,只有用户在程序中定义它后才能被使用。用户通常利用枚举类型定义程序中需要使用的一组相关的符号常量。枚举类型的定义格式为:

enum <枚举类型名> {<枚举表>};

它是一条枚举类型定义语句,该语句以enum保留字开始,接着为枚举类型名,它是用户命名的一个标识符,以后就直接使用它表示该类型,枚举类型名后为该类型的定义体,它是由一对花括号和其中的枚举表所组成,枚举表为一组用逗号分开的由用户命名的符号常量,每个符号常量又称为枚举常量或枚举值。如:

(1) enum color{red, yellow, blue};

(2) enum day{Sun, Mon, Tues, Wed, Thur, Fri, Sat};
Note:最后一个元素后面不要加逗号,否则编译出错。
第一条语句定义了一个枚举类型color,用来表示颜色,它包含三个枚举值red,yellow和blue,分别<nobr id="clickeyekey5" style="border-bottom:rgb(102,0,255) 1px dotted; background-color:transparent; color:rgb(102,0,255); text-decoration:underline">代表</nobr>红色、黄色和兰色。

第二条语句定义了一个枚举类型day,用来表示日期,它包含7个枚举值,分别表示星期日、星期一至星期六。

一种枚举类型被定义后,可以象整型等预定义类型一样使用在允许出现<nobr id="clickeyekey3" style="border-bottom:rgb(102,0,255) 1px dotted; background-color:transparent; color:rgb(102,0,255); text-decoration:underline">数据</nobr>类型的任何地方。如可以利用它定义变量。

(1) enum color c1, c2,c3;

(2) enum day today, workday;

(3) c1=red;

(4) workday=Wed;

第一条语句开始的保留字enum和类型标识符colou表示上述定义的枚举类型color,其中enum可以省略不写,后面的三个标识符c1,c2和c3表示该类型的三个变量,每一个变量用来表示该枚举表中列出的任一个值。

第二条语句开始的两个<nobr id="clickeyekey7" style="border-bottom:rgb(102,0,255) 1px dotted; background-color:transparent; color:rgb(102,0,255); text-decoration:underline">成分</nobr>(成分之间的空格除外)表示上述定义的枚举类型day,同样enum可以省略不写,后面的两个标识符today和workday表示该类型的两个变量,每一个变量用来表示该枚举表中列出的七个值中的任一个值。

第三条语句把枚举值red赋给变量c1,第四条语句把枚举值Wed赋给变量workday。

在一个枚举类型的枚举表中列出的每一个枚举常量都对应着一个整数值,该整数值可以由系统自动确认,也可以由用户<nobr id="clickeyekey1" style="border-bottom:rgb(102,0,255) 1px dotted; background-color:transparent; color:rgb(102,0,255); text-decoration:underline">指定</nobr>。若用户在枚举表中一个枚举常量后加上赋值号和一个整型常量,则就表示枚举常量被赋予了这个整型常量的值。如:

enum day{Sun=7, Mon=0, Tues, Wed, Thur, Fri, Sat};

用户指定了Sun的值为7,Mon的值为0。

若用户没有给一个枚举常量赋初值,则<nobr id="clickeyekey6" style="border-bottom:rgb(102,0,255) 1px dotted; background-color:transparent; color:rgb(102,0,255); text-decoration:underline">系统</nobr>给它赋予的值是它前一项枚举常量的值加1,若它本身就是首项,则被自动赋予整数0。如对于上述定义的color类型,red,yellow和blue的值分别为0,1和2;对于刚被修改定义的day类型,各枚举常量的值依次为7,0,1,2,3,4,5,6。

由于各枚举常量的值是一个整数,所以可把它同一般整数一样看待,<nobr id="clickeyekey4" style="border-bottom:rgb(102,0,255) 1px dotted; background-color:transparent; color:rgb(102,0,255); text-decoration:underline">参与</nobr>整数的各种运算。又由于它本身是一个符号常量,所以当作为输出数据项时,输出的是它的整数值,而不是它的标识符,这一点同输出其他类型的符号常量是一致的。 下面为一个实例:
#include <iostream>
using namespace std;
enum Day {Saturday, Sunday = 0, Monday, Tuesday, Wednesday,Thursday, Friday}; //Saturday = 0 by default, Sunday = 0 as well
void Prnt (Day day) // Print whether a day is a 'Weekend' or a "Weekday".
{
if (day ==0) {
cout << "Weekend" << endl;
}else {cout << "Weekday" << endl; }
}
int main()
{
Prnt( Saturday);
Day day1=Monday;
cout<<day1<<endl;
return 0;
}
运行结果为:
在不同的编程语言中,`enum`(枚举)的使用方法有所不同,以下是几种常见编程语言中`enum`的使用介绍: ### C语言 在C语言中,`enum`是一个关键字,用于定义枚举数据类型,它是预处理指令`#define`的替代。枚举数据类型描述的是一组整型值的集合,在编译阶段将名字替换成对应的值。示例如下: ```c #include <stdio.h> // 定义一个枚举类型 enum game {win, lose, tie}; int main() { // 使用枚举常量 enum game result = win; if (result == win) { printf("You win!\n"); } return 0; } ``` 在这个例子中,`win`的值默认是0,`lose`的值是1,`tie`的值是2 [^2][^3]。 ### C++ C++中`enum`的使用和C语言类似,不过有更多的灵活性。示例如下: ```cpp #include <iostream> // 定义一个枚举类型 enum game {win, lose, tie}; int main() { // 使用枚举常量 game result = win; if (result == win) { std::cout << "You win!" << std::endl; } return 0; } ``` 同样,`win`的值默认是0,`lose`的值是1,`tie`的值是2。也可以手动指定枚举常量的值,例如: ```cpp #include <iostream> // 定义一个枚举类型,手动指定值 enum weekday {mon = 1, tue, wed, thu, fri, sat, sun}; int main() { // 使用枚举常量 weekday today = wed; std::cout << "Today is the " << today << "th day of the week." << std::endl; return 0; } ``` 这里`mon`的值是1,`tue`的值是2,以此类推 [^3]。 ### Java 在Java中,枚举是一种特殊的类。可以在枚举中定义构造方法、成员变量和方法等。示例如下: ```java // 定义一个枚举类 enum SeasonEnum { SPRING("Spring", "Warm"), SUMMER("Summer", "Hot"); private String name; private String desc; SeasonEnum(String name, String desc) { this.name = name; this.desc = desc; } public String getName() { return name; } public String getDesc() { return desc; } // 重写toString方法 @Override public String toString() { switch (this) { case SPRING: return SPRING.getName() + "\t" + SPRING.getDesc(); case SUMMER: return SUMMER.getName() + "\t" + SUMMER.getDesc(); default: return "unknow enum obj"; } } } public class Main { public static void main(String[] args) { // 使用枚举常量 SeasonEnum season = SeasonEnum.SPRING; System.out.println(season); // 使用values()方法遍历枚举值 SeasonEnum[] values = SeasonEnum.values(); for (SeasonEnum value : values) { System.out.println(value.getName()); } } } ``` 在这个例子中,`SeasonEnum`是一个枚举类,包含两个枚举常量`SPRING`和`SUMMER`。重写了`toString`方法以获得更多信息,还使用了`values()`方法来遍历所有枚举值 [^4]。 ### 通用使用场景 在程序中使用`enum`设置常量时,可以通过`枚举类型名.常量名`的方式来引用常量。例如在Java中,使用`SeasonEnum.SPRING`;在C和C++中,使用`enum game win`这样的形式 [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值