enum在c语言中怎么用

enum在c语言中怎么用,第1张

C语言的枚举类型实质就是整型变量,只不过通过枚举类型将一类有关联的标识组合起来,增加程序的可读性和可维护性

(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。

(2) DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。

(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。

(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。

(5) 枚举型是预处理指令#define的替代。

(6) 类型定义以分号;结束。

定义枚举类型

enum YOURENUMTYPE

{

ID1,//如果不额外指定则第一个标识等于整数0,后续依次加1

ID2,

ID3=7,

IDn//最后一个标识符后面没有逗号

};//注意一定要加上这个分号

定义枚举变量

enum YOURENUMTYPE varname;

给枚举变量赋值 varname = IDx;

举个完整的例子

enum FRUIT

{

APPLE,

PEAR,

ORANGE,

PEACH,

GRAPE,

BANANA

};

enmu FRUIT myfruit = PEACH;

package comljqtest;

/

枚举用法详解

@author jiqinlin

/

public class TestEnum {

/

普通枚举

@author jiqinlin

/

public enum ColorEnum {

red, green, yellow, blue;

}

/

枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法

@author jiqinlin

/

public enum SeasonEnum {

//注:枚举写在最前面,否则编译出错

spring, summer, autumn, winter;

private final static String position = "test";

public static SeasonEnum getSeason() {

if ("test"equals(position))

return spring;

else

return winter;

}

}

/

性别

实现带有构造器的枚举

@author jiqinlin

/

public enum Gender{

//通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错

//赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值;如果不赋值则不能写构造器,赋值编译也出错

MAN("MAN"), WOMEN("WOMEN");

private final String value;

//构造器默认也只能是private, 从而保证构造函数只能在内部使用

Gender(String value) {

thisvalue = value;

}

public String getValue() {

return value;

}

}

/

订单状态

实现带有抽象方法的枚举

@author jiqinlin

/

public enum OrderState {

/ 已取消 /

CANCEL {public String getName(){return "已取消";}},

/ 待审核 /

WAITCONFIRM {public String getName(){return "待审核";}},

/ 等待付款 /

WAITPAYMENT {public String getName(){return "等待付款";}},

/ 正在配货 /

ADMEASUREPRODUCT {public String getName(){return "正在配货";}},

/ 等待发货 /

WAITDELIVER {public String getName(){return "等待发货";}},

/ 已发货 /

DELIVERED {public String getName(){return "已发货";}},

/ 已收货 /

RECEIVED {public String getName(){return "已收货";}};

public abstract String getName();

}

public static void main(String[] args) {

//枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名值”取得枚举中的值

ColorEnum colorEnum = ColorEnumblue;

switch (colorEnum) {

case red:

Systemoutprintln("color is red");

break;

case green:

Systemoutprintln("color is green");

break;

case yellow:

Systemoutprintln("color is yellow");

break;

case blue:

Systemoutprintln("color is blue");

break;

}

//遍历枚举

Systemoutprintln("遍历ColorEnum枚举中的值");

for(ColorEnum color : ColorEnumvalues()){

Systemoutprintln(color);

}

//获取枚举的个数

Systemoutprintln("ColorEnum枚举中的值有"+ColorEnumvalues()length+"个");

//获取枚举的索引位置,默认从0开始

Systemoutprintln(ColorEnumredordinal());//0

Systemoutprintln(ColorEnumgreenordinal());//1

Systemoutprintln(ColorEnumyellowordinal());//2

Systemoutprintln(ColorEnumblueordinal());//3

//枚举默认实现了javalangComparable接口

Systemoutprintln(ColorEnumredcompareTo(ColorEnumgreen));//-1

//--------------------------

Systemoutprintln("===========");

Systemerrprintln("季节为" + SeasonEnumgetSeason());

//--------------

Systemoutprintln("===========");

for(Gender gender : Gendervalues()){

Systemoutprintln(gendervalue);

}

//--------------

Systemoutprintln("===========");

for(OrderState order : OrderStatevalues()){

Systemoutprintln(ordergetName());

}

}

}

以上就是关于enum在c语言中怎么用全部的内容,包括:enum在c语言中怎么用、java枚举问题、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10632387.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存