枚举类型

Posted szy211

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了枚举类型相关的知识,希望对你有一定的参考价值。

用户自定义类型:枚举类型

描述方式特殊:将该类型所有取值都一一枚举出来。

1.定义一个枚举类型,要求列举出该类型数据的全部可取值。

enum 枚举类型名 变量值列表;

例:用枚举类型表示一个星期中的7天。

enum WeekdaySUN,MON,TUE,WED,THU,FRI

2.对枚举元素按常量处理,不能对它们赋值。
例:

SUN=0;

该语句非法。

3.枚举元素具有默认值,从零开始递增,依次为0,1,2......也可以在声明另时行指定枚举元素的值。
例:

enum WeekdaySUN=7,MON=1,TUE,WED,THU,FRI

注意:此处若未给MON赋值,则MON自动被赋值为8。

4.枚举变量的值可以直接赋值给整形。
例:

enum GameResultWIN,LOSE,TIE,CANCEL;

int count=WIN;

此处将枚举类型数据WIN隐含转换为整形,作为整形变量count的初值。

5.整数值不能直接赋给枚举变量,如需要将整数值赋给枚举变量,应进行强制类型转换。
该整数处于枚举常量定义的范围之内,强制转换才能成功。

例:

GameResult result;
result=GameResult(count);

此处为显式转换。

6.枚举值可以进行关系运算。如>、<、>=、<=、==、!=
但枚举类型不可以直接进行数学运算,因为枚举类型在运算时会被隐式转换为int等类型,
如++、--运算符,无法保证在运算后该枚举类型仍然合法。

7.实际应用

# include < iostream>
using namespace std;

enum GameResult (WIN, LOSE, TIE, CANCEL); .
int main() 
    GameResult result;    
    enum GameResult omit= CANCEL;

    for (int count= WIN; count <= CANCEL; count++ )
        result= GameResult (count) ;
        if (result== omit)
                cout<<"The game was cancelled“<<endl;
        else 
            cout<<"The game was played ";
            if (result== WIN)
                cout<< "and we won!";
            if (result== LOSE)
                cout<< "and we lost.";
            cout<<endl ;
         
    
    return 0;

以上是关于枚举类型的主要内容,如果未能解决你的问题,请参考以下文章

C# 枚举器和可枚举类型

c++枚举类型的枚举类型的声明

枚举类型

C语言中的枚举类型

(ts-03)枚举类型的意义

c#中怎样定义枚举?