枚举类型变量(用枚举型常量怎么定义变量)

2025-02-26 01:20:04 0

枚举类型变量(用枚举型常量怎么定义变量)

本文目录

用枚举型常量怎么定义变量

enum day{sunday,monday,tuesday,wendsday,thursday,friday,stadurday};

这句定义了符号化的常量sunday,monday等等。在下面的程序中,可以声明枚举型变量day today,对其赋值,或者判断它的值。

定义枚举型的好处主要有二,首先增强程序可读性,sunday、monday肯定比0,1容易理解;其次可以对变量类型与取值进行限定。

枚举型常量即某种枚举型的合法取值,此例中,sunday,monday,tuesday,wendsday,thursday,friday,stadurday是枚举型常量。在编译时确定各个常量的对应值。枚举型变量指的是声明为已定义枚举类型的变量。如此例中的today。

枚举型的定义四种基本数据类型,可以用来表达数,字符,真假的描述。但我们还是觉得有点缺欠:它们不能方便地进行一些标识符的描述,如:红,橙,黄,绿,青,蓝,紫七种颜色,要在数据类型中要把它们直接表达出来,我们觉得有障碍。

而在计算机内有没有这种数据类型,能够很方便地将它们表示出来?有,枚举型能办到。用四种基本数据类型不便表示的标识符,而且这些标识符的数量是有限的,我们可以用枚举的方法来表达它,把要用的所有标识符全部枚举出来。这种方法比较接近自然语言的表达。

枚举和注解都是在Java1.5中引入的,虽然他们是后起之秀,但是功能不容小觑,枚举改变了常量的声明方式,注解耦合了数据和代码.

建议83:推荐使用枚举定义常量

分析 

常量的声明是每一个项目中不可或缺的,在Java1.5之前,我们只有两种方式的声明:类常量和接口常量。不过,在1.5版之后有了改进,即新增了一种常量声明方式,枚举常量。代码如下: 

1 enum Season{ 

2     Spring,Summer,Autumn,Winter; 

3 }

JLS(Java Language Specification,Java语言规范)提倡枚举项全都大写,字母之间用下划线分隔.这也是从常量的角度考虑的.

“枚举类型”与“枚举变量”有什么区别

用type类型定义的变量,拥有自己的成员,类似于一个小型的类(只不过没有事件和方法而已)。可以用“变量名.成员名”访问成员枚举类型就相当于一组常量,即一组用const定义的量,为了便于组织才使用枚举类型。不过枚举类型的变量也可以用“变量名.常量名”访问

枚举类型的变量是在哪儿里定义的

enum枚举名{枚举值表};在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。例如:enumweekday{sun,mou,tue,wed,thu,fri,sat};该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。

如何定义一个枚举型变量

你可以查找和阅读课文。这里不好开课。简单的定义例子如下:类型定义: enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN };变量声明 enum DAY yesterday;变量声明 enum DAY today;变量声明 enum DAY tomorrow;类型定义 + 变量声明: enum week { Mon=1, Tue, Wed, Thu, Fri Sat, Sun} days; //变量days的类型为枚举型enum week

c++枚举变量类型

枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。定义格式:枚举类型的定义格式为:enum 《类型名》 {《枚举常量表》};其中:关键字enum——指明其后的标识符是一个枚举类型的名字。枚举常量表——由枚举常量构成。“枚举常量”或称“枚举成员”,是以标识符形式表示的整型量,表示枚举类型的取值。枚举常量表列出枚举类型的所有取值,各枚举常量之间以“,”间隔,且必须各不相同。取值类型与条件表达式相同。应用举例:enum color_set1 {RED, BLUE, WHITE, BLACK}; //定义枚举类型color_set1enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; //定义枚举类型week重要提示:枚举常量代表该枚举类型的变量可能取的值,编译系统为每个枚举常量指定一个整数值,缺省状态下,这个整数就是所列举元素的序号,序号从0开始。可以在定义枚举类型时为部分或全部枚举常量指定整数值,在指定值之前的枚举常量仍按缺省方式取值,而指定值之后的枚举常量按依次加1的原则取值。各枚举常量的值可以重复。例如:enum fruit_set {apple, orange, banana=1, peach, grape}//枚举常量apple=0,orange=1, banana=1,peach=2,grape=3。enum week {Sun=7, Mon=1, Tue, Wed, Thu, Fri, Sat};//枚举常量Sun,Mon,Tue,Wed,Thu,Fri,Sat的值分别为7、1、2、3、4、5、6。枚举常量只能以标识符形式表示,而不能是整型、字符型等文字常量。例如,以下定义非法:enum letter_set {’a’,’d’,’F’,’s’,’T’}; //枚举常量不能是字符常量enum year_set{2000,2001,2002,2003,2004,2005}; //枚举常量不能是整型常量可改为以下形式则定义合法:enum letter_set {a, d, F, s, T};enum year_set{y2000, y2001, y2002, y2003, y2004, y2005};枚举变量的使用定义枚举类型的主要目的是:增加程序的可读性。枚举类型最常见也最有意义的用处之一就是用来描述状态量,这点将在第9章 输入输出流类看到。定义格式:定义枚举类型之后,就可以定义该枚举类型的变量,如:color_set1 color1, color2;亦可类型与变量同时定义(甚至类型名可省),格式如下:enum {Sun,Mon,Tue,Wed,Thu,Fri,Sat} weekday1, weekday2;相关操作枚举变量的值只能取枚举常量表中所列的值,就是整型数的一个子集。枚举变量占用内存的大小与整型数相同。枚举变量只能参与赋值和关系运算以及输出操作,参与运算时用其本身的整数值。例如,设有定义:enum color_set1 {RED, BLUE, WHITE, BLACK} color1, color2;enum color_set2 { GREEN, RED, YELLOW, WHITE} color3, color4;则允许的赋值操作如下:color3=RED; //将枚举常量值赋给枚举变量color4=color3; //相同类型的枚举变量赋值,color4的值为REDint i=color3; //将枚举变量赋给整型变量,i的值为1int j=GREEN; //将枚举常量赋给整型变量,j的值为0允许的关系运算有:==、《、》、《=、》=、!=等,例如://比较同类型枚举变量color3,color4是否相等if (color3==color4) cout《《”相等”;//输出的是变量color3与WHITE的比较结果,结果为1cout《《 color3《WHITE;枚举变量可以直接输出,输出的是变量的整数值。例如:cout《《 color3; //输出的是color3的整数值,即RED的整数值1应用举例【例2.24】 口袋中有红、黄、蓝、白、黑五种颜色的球若干个,每次从口袋中取三个不同颜色的球,统计并输出所有的取法。#include《iostream》#include《iomanip》using namespace std;int main(){enum color_set {red,yellow,blue,white,black};color_set color;int i,j,k,counter=0,loop;for(i=red;i《=black;i++)for(j=red;j《=black;j++)if(i!=j){ //前两个球颜色不同for(k=red;k《=black;k++)if(k!=i&&k!=j){ //第三个球不同于前两个,满足要求counter++;if((counter)%22==0){ //每屏显示22行cout《《“请按回车键继续“;cin.get();}cout《《setw(15)《《counter;/*下面输出每种取法,一行为一种取法的三个颜色*/for(loop=1;loop《=3;loop++){switch(loop){case 1: color=(color_set) i; break; //第一个是icase 2: color=(color_set) j; break; //第二个是jcase 3: color=(color_set) k; break; //第三个是k}switch(color){case red: cout《《setw(15)《《“red“; break;case yellow:cout《《setw(15)《《“yellow“;break;case blue: cout《《setw(15)《《“blue“; break;case white: cout《《setw(15)《《“white“; break;case black: cout《《setw(15)《《“black“; break;}}cout《《endl; //输出一种取法后换行}}cout《《“共有:“《《counter《《“种取法“《《endl;return 0;}重要提示枚举变量可以直接输出,但不能直接输入。如:cout 》》 color3; //非法不能直接将常量赋给枚举变量。如: color1=1; //非法不同类型的枚举变量之间不能相互赋值。如: color1=color3; //非法枚举变量的输入输出一般都采用switch语句将其转换为字符或字符串;枚举类型数据的其他处理也往往应用switch语句,以保证程序的合法性和可读性。

枚举类型究竟有什么用

枚举类型其实是整型,它的作用一是让数值看起来更直观二是圈定一个范围,是数值被限定在这个范围中。

1、 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 

2、 举个例子来说明一下吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它!

enum box{pencil,pen};//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示铅笔和钢笔。

3、这里要说一下,如果你想定义两个具有同样特性枚举类型的变量那么你可以用如下的两种方式进行定义! 

enum box{pencil,pen};  

enum box box2;//或者简写成box box2;

再有一种就是在声明的时候同时定义。

enum {pencil,pen}box,box2; //在声明的同时进行定义!

枚举变量中的枚举元素系统是按照常量来处理的,故叫枚举常量,他们是不能进行普通的算术赋值的,(pencil=1;)这样的写法是错误的,但是你可以在声明的时候进行赋值操作! 

enum box{pencil=1,pen=2};

4、但是这里要特别注意的一点是,如果你不进行元素赋值操作那么元素将会被系统自动从0开始自动递增的进行赋值操作,说到自动赋值,如果你只定义了第一个那么系统将对下一个元素进行前一个元素的值加1操作,例如

enum box{pencil=3,pen};//这里pen就是4系统将自动进行pen=4的定义赋值操作。

C语言中关于枚举类型

1.enum枚举的定义枚举类型定义的一般形式为:enum 枚举名{ 枚举值表 };在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。例如:该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。2.枚举变量的说明如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:enum weekday{ sun,mou,tue,wed,thu,fri,sat };enum weekday a,b,c;或者为:enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c;或者为:enum { sun,mou,tue,wed,thu,fri,sat }a,b,c;3、枚举类型变量的赋值和使用枚举类型在使用中有以下规定:a.枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如对枚举weekday的元素再作以下赋值:sun=5;mon=2;sun=mon;都是错误的。b.枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。int main(){enum weekday{ sun,mon,tue,wed,thu,fri,sat } a,b,c;a=sun;b=mon;c=tue;printf(“%d,%d,%d“,a,b,c);return 0;}说明:只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如:a=sum;b=mon;是正确的。而:a=0;b=1;是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换。如:a=(enumweekday)2;其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:a=tue;还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。int main(){enum body{ a,b,c,d } month,j;int i;j=a;for(i=1;i《=30;i++){month){case a:printf(“ %2d %c\t“,i,’a’); break;case b:printf(“ %2d %c\t“,i,’b’); break;case c:printf(“ %2d %c\t“,i,’c’); break;case d:printf(“ %2d %c\t“,i,’d’); break;default:break;}}printf(“\n“);return 0;}

枚举类型变量(用枚举型常量怎么定义变量)

本文编辑:admin

更多文章:


spyder和python的关系(python和spyder的区别)

本文目录python和spyder的区别spyder和anaconda的关系Python(x,y)和Python是什么关系python和spyder的区别Python(推荐学习:Python视频教程)是一种解释型的、 面向对象的带有动态语义

2025年3月28日 06:30

easypanel控制面板(CentOS6.2安装mysql5.5+kangle+easypanel怎么弄)

本文目录CentOS6.2安装mysql5.5+kangle+easypanel怎么弄easypanel独立控制面板怎么使用能上传html网页吗easypanel虚拟主机控制面板的主要功能CentOS6.2安装mysql5.5+kangle

2025年3月13日 11:40

百度ueditor编辑器(百度ueditor编辑器如何显示、修改从数据库中的数据)

本文目录百度ueditor编辑器如何显示、修改从数据库中的数据百度ueditor编辑器怎么用百度UEditor编辑器源代码编辑模式用CSS会被转义,有解决方法吗百度编辑器ueditor怎么获取内容百度编辑器ueditor怎么用百度uedit

2025年2月27日 02:20

常用的sql语句大全(sql 常用语句)

本文目录sql 常用语句sql常用语句语法sql语句大全SQL 常用语句大全要系统答案,不要粘贴的一大堆!sql 常用语句选择:select*fromtable1where范围插入:insertintotable1(field1,field

2025年2月8日 21:10

数据库系统工程师考试大纲(软考(中级级)都需要哪些书)

本文目录软考(中级级)都需要哪些书数据库工程师 考试需要看什么参考书软考(中级级)都需要哪些书一般准备3本书:指定教材+辅导+历年试题具体要看准备考哪个类别的,参考以下官方推荐的书目:全国计算机软件考试用书目录(出版社,书号,书名,版别,

2025年3月28日 10:00

assemblyinfo(c#web怎么加入assemblyinfo cs)

本文目录c#web怎么加入assemblyinfo cs在VS里面编程,程序本身没有一点问题,但是每次都在AssemblyInfo.cs里面有三个错误c#web怎么加入assemblyinfo cs/ 程序集的版本信息由下列 4 个值组成:

2025年3月15日 02:20

similar怎么读(What is she like是什么意思)

本文目录What is she like是什么意思如何辨别“似”字的两个读音What is she like是什么意思What is she like的意思是:她是什么样的人like 读法 英   1、prep.相似;类似;像;(询问意见)

2025年4月7日 12:40

tomcat安装失败(Tomcat安装不了)

本文目录Tomcat安装不了Tomact安装问题tomcat安装不成功tomcat9总是安装失败,为什么tomcat安装时出现这个提示请问是为什么Linux中安装tomcat出现错误Tomcat安装不了错误一:安装tomcat6,无法启动服

2025年3月4日 06:00

java核心技术(Java核心技术:Spring是什么)

本文目录Java核心技术:Spring是什么JAVA核心技术的内容简介Java的核心技术什么java语言核心技术是什么JAVA核心技术第八版中文版电子书Java核心技术:Spring是什么从简单性、可测试性和松耦合的角度而言,任何Java应

2025年2月10日 16:10

positively什么意思(Positively-Radiant是什么意思)

本文目录Positively-Radiant是什么意思请教“positively“ 跟”actively“ 有啥区别单词indeed,surely,certainly,truely,positively ,absolutely,really

2025年4月9日 22:50

c语言代码没错但运行不出来(C语言编译好后为什么运行不出结果呢)

本文目录C语言编译好后为什么运行不出结果呢c语言程序显示没有问题但运行结果是空白的C语言程序没有错误,但是运行不了c语言中,程序没有错误但是运行后却不显示C语言作业运行不出来,求指导C语言编程调试后没有错误但是却无法运行是怎么回事C语言程序

2025年2月11日 16:50

oracle vm virtualbox官网(Oracle VM VirtualBox 启动报错求助)

本文目录Oracle VM VirtualBox 启动报错求助Oracle VM VirtualBox虚拟机打开就出现这个问题Oracle VM VirtualBox Extension Pack 它官网上下的 怎么回事Oracle VM

2025年3月29日 02:40

fifth翻译(第五的英文是什么)

本文目录第五的英文是什么五月初五用英文怎么讲第五次英语怎么说五分之一用英语怎么说第五天英文怎么写第五的英文是什么“第五”的英文:fifth 读法:英  释义:1、adj. 第五的;五分之一的2、n. 第五;五分之一3、num. 第五Fift

2025年3月18日 10:10

moments是什么意思(moments是朋友圈的意思吗)

本文目录moments是朋友圈的意思吗moment什么意思为什么微信的朋友圈英文叫momentsmoment是什么意思,选哪个MOMENTS中文是什么意思moments是朋友圈的意思吗moments是朋友圈的意思。moment 英    

2025年4月10日 12:00

web设计软件(web前端软件学习)

本文目录web前端软件学习web软件的界面尺寸有什么可视化设计web界面的工具web程序设计用什么软件做题求推荐Web App原型设计、代码生成软件web app开发需要什么软件常见web程序设计的开发工具有哪些,各自的特点是什么web前端

2025年3月1日 12:50

iframe属性识别(怎么获取iframe里面的元素)

本文目录怎么获取iframe里面的元素js 如何获取包含自己iframe 属性怎么获取iframe指向页面的对象属性怎么获取iframe里面的元素JS获取/设置iframe内对象元素、文档的几种方法 1、IE专用(通过frames索引形象定

2025年2月24日 11:30

comeback(come back和come back to的区别,具体举例子)

本文目录come back和come back to的区别,具体举例子come back是什么意思啊come back 什么意思急急急come back是什么意思come back 与 get back有什么区别come back和go b

2025年2月21日 09:00

nobody歌曲(求一首英文歌 只记得 nobody no)

本文目录求一首英文歌 只记得 nobody no现在网络里流行一首叫nobody的歌,这首个到底谁是原唱呀Nobody 中文歌词求一首英文歌 只记得 nobody no正确歌词:I want nobody nobody nobody nob

2025年3月17日 13:10

ignore什么意思中文(在英语单词中,ignore 这个单词是什么意思呢)

本文目录在英语单词中,ignore 这个单词是什么意思呢ignore是什么意思在英语单词中,ignore 这个单词是什么意思呢ignore英 驳回(诉讼)例句:She said her husband ignored her 她说丈夫不关心

2025年3月26日 15:20

数据透视表教程(怎么插入数据透视表)

本文目录怎么插入数据透视表Excel数据透视表怎么做excel数据透视表教程透视图excel教程excel怎样做透视表数据透视图excel教程Excel2007如何插入数据透视表步骤怎么插入数据透视表Excel教程:如何制作数据透视表?简单

2025年3月8日 04:40

近期文章

2025-04-12 14:40:03
本站热文

2025-02-22 17:40:03 浏览:18
2025-02-10 23:40:06 浏览:7
2025-02-14 06:00:02 浏览:6
标签列表

热门搜索