枚举类型详解
- 前言
- 定义
- 格式说明
- 枚举常量的赋值
- 枚举变量的使用
- 定义格式
- 相关操作
- 注意事项
前言
在学习语言的时候,看到数据类型分类时看到了枚举类型,因为在之后的代码中很少涉及到枚举类型,所以一直以来没有搞明白枚举类型怎样使用,这一次把有关枚举类型的都放进来,好好整理一遍。
定义
枚举类型是属于派生数据类型,它是由用户定义的若干枚举常量的集合。
定义的格式如下:
enum<类型名>{<枚举常量表>};
格式说明
关键词的说明enum—指明其后的标识符是一个枚举类型的名字
枚举常量表—由枚举常量构成,“枚举常量”或称“枚举成员”,是以标识符形式表示的整型量,表示枚举类型的取值。
枚举常量表列出枚举类型的所有取值,各枚举常量之间以“,”间隔,且必须各不相同,取值类型与条件表达式相同。
代码举例:
enum week{Mon,Tue,Wed,Thu,Fri,Sat,Sun}; //定义枚举类型week
枚举常量的赋值
枚举常量的引入,是为了表示定义为枚举类型变量的取值,它表示了枚举类型变量所有的可能取值
枚举常量的取值两种情况:
一.默认状况下(未对枚举常量进行赋值)
枚举常量的赋值就是所列举元素的序号,序号从0开始
二.非默认状况下(对枚举常量进行赋值)
枚举类型允许用户为部分或全部枚举常量指定整数值,制定规则:
在指定值之前的枚举常量依旧按照默认状况下取值
在指定值之后的枚举常量按依次加1的原则取值
代码举例:
enum week{Mon,Tue,Wed=1,Thu,Fri,Sat,Sun};
//枚举常量Mon= 0,Tue=1,Wed=1,Thu=2,Fri=3,Sat=4,Sun=5
enum week{Mon=7,Tue=2,Wed,Thu,Fri,Sat,Sun};
//枚举常量Mon=7,Tue=2,Wed=3,Thu=4,Fri=5,Sat=6,Sun=7
注意:枚举常只能以标识符的形式存在,不能是整型(300),字符型(‘a’)常量。
枚举变量的使用
首先来说枚举变量定义出来的意义,其主要目的是:
增加程序的可读性,枚举类型最常见也最有意义的用处之一在于用来表示状态量
定义格式
定义格式分两种
一.定义枚举类型之后,再定义枚举类型的变量,格式如下:
week weekend1,weekend2; //定义枚举变量weekend1,weekend2
二.类型与变量同时定义,此时可以省略类型名,格式如下:
enum {Mon,Tue,Wed,Thu,Fri,Sat,Sun}week1,week2;
//定义枚举变量week1,week2
相关操作
说到底,枚举变量的取值只能是取枚举常量表中所列的值,枚举类型就是整数类型的一个子集,所以枚举类型和整型是可以互相进行运算的!!!(重要的事情打惊叹号)
枚举变量占用内存大小与整型变量相同
枚举变量只能参与赋值和关系运算以及输出操作,参与运算时用枚举变量本身的整数值
代码举例:
定义
enum {Mon,Tue,Wed,Thu,Fri,Sat,Sun}week1,week2;
//定义枚举变量week1,week2
赋值操作
week1=Mon; //将枚举常量赋值给枚举变量
week2=week1;//将同类型的枚举变量赋值给枚举变量,week2的值为Mon
int i=week1;//将枚举变量的值赋值给整型变量,i的值为Mon
int k=Fri; //将枚举常量赋值给整型变量,k的值为Fri即为4
枚举变量允许的关系运算:<、>、<=、>=等等
枚举变量可以直接输出,输出的是变量的整数值(这里我用的是Java代码,如果没有学过的话,只要记住这条语句是输出语句)
代码举例
System.out.println(week1);//输出的是week1的取值Mon即为0
注意事项
*枚举变量可以直接输出,但是不允许直接输入
*不能直接将常量赋值给枚举变量
*不同类型的枚举变量是不同相互赋值的