00:01
枚举类型使用的注意事项和细节,我们来看一下,那么我们在使用枚举类型的时候需要注意哪些地方呢?我给大家整理了有六点,希望大家注意。第一点,第一个枚举成员的默认值为整数的零,后续的枚举成员的值在前一个成员计上加一。那也就是说,你看我们在实例中把第一个枚举成员的值定义为一,那第二个就是二,以此类推,那我问大家一个问题哈。大家看到没有,默认整数为零,那我问同学们一个问题,假如说我说假如哈,把这个代码打开,我们在这个便利的地方把这个打开。然后我把这边先注销一下好不好,先注销一下。那我问同学们几个问题,比如说我这里没有给值。我这里如果没有给值的话,请问这个Monday,这个Monday。
01:00
你看这移,你把鼠标移动到这里,它是不是默认已经给了一个零了。对,也就是说你没有给值,其实它默认是零,那这样子的话,输出的就应该是什么呢?输出就应该是0123456。就说如果没有,如果没有,没有给值,就会按照这个顺序,默认是什么呢?默认第一个值为一,如果你当然你给了值,那就从第一一开始给你加了,就是老师说的这句话。有你你第一个没有给,那第一个就是零,后面后续加,如果你把第一个成员值复制为一,那第二个就是二,以此类推,那同学们我们运行一下。现在呢,因为Monday Monday没有给值,那么它应该是零到六运行一下。看效果。我们可以看到这个结果呢,应该是零到六,没有任何问题对吧?说明第一点是正确的,第一点是同学们注意,第二点在定义枚举类型的时候呢,可以改变枚举元素的值,我举个例子。
02:02
比方说我在这个地方,我突然在这儿给了一个九。我给个九,同学们想想,这个时候他会输出什么?同学们,那第一个Monday是零,这没有给值,就在基础上加变成一,这个变成二。那么这个时候他强制给了一个九,那当然这一个Tuesday就是九了,那后面这个Friday就是十,Saturday就是11 Sunday就是12,明白这个意思吧,也就是说你你这个地方没有给值,默认就零,后面加加到这个地方的时候呢,诶突然给了个九,那就以你的这个为准,再继续增长。那这样输出来就是零一二九十,11 12,看一下是不是这样子的运行值。能理解这个意思啊,同学们,我们看这个结果就跟我们想的一样,看012,诶这个地方打出这么多了啊。我们看一下这个地方的问题。这是九。
03:00
啊,这是九,我们看一下。那我们看看这个结果跟我想的好像有点不太一样,怎么是零一二三四五六七八九十,11,十二十十一十二呢,为什么呀,哪个同学能告诉我?你看是这样子的。呃,你你这地方虽然是七个元素,但是你这刚才我们不是分析了吗?这个Sunday其实就12了,那也就是说你这个day。不停的增长。因为你你这个Sunday已经12了,所以说他一定会打12个出来,是这样子的吧。但是实际上我要讲的是这个pri的值其实是十,明白这个意思吧,就是说因为因为我这地方是写死了,要要从零一直变利到Sunday这个词,那Sunday因为这个时候这个上。上。根据刚才这个分析,它是等于12的,那当然你从你这么从零开始走,零小于等于12,那当然会输出十,13个值了,你数123对吧,13个我就不数了,说这样子的,但是其实我要说的是什么呢?就是这个Friday其实是十,Saturday是11,这是12。
04:15
这个能理解吧。应应该是很好理解,那这样子,如果说同学们对这方有点怀疑的话呢,咱们可以这样玩,就是我们可以这样子来跟大家看一下这个结果哈,来走一个我们可以直接输出。对,我们可以直接输出,就说我们现在直接输出是Friday Saturday Sunday,到底等于多少,这样子大家就一目了然了。好,我们试一下。百分号低啊。来,我们走一个吧,现在呢,这个day。这个对呢,我们先给它附一个。啊,付一个这个Friday。这个没问题吧,是不是前面已经讲过了,现在我直接输出一个D。你们这个地方,如果它输出的是十,就说明我们这个分析是正确的,因为你认识九吗?那Friday呢,就是十,只要把这个证明了就可以了,好不好。
05:08
来运行,那我们可以看到这边输出的是十。看。没有问题啊,同学们可以的,也就是说这个就是刚才老师分析的这个原因,好,我把这个还打开好吧。把这个打开。好,这是我们讲的这个小细节,那么还有一个枚举类型定义的形式呢?有三种,这个大家知道,第一种。先定义枚举类型,再定义枚举变量,这个在前面已经用过了,哪个地方演示过这个效果呢?在这。是不是在这个案例里面,在这个案例里面我们用过。这里看这段代码,同学们看一下这段代码,这段代码就是先定义的是枚举类型,再定义枚举变量,看到没有?就是分开,分成两步写,这是一种,我把这个拿过来吧。
06:00
为了待会儿呢,我写案例比较方便,我我把这个先。呃,这个地方还不好写。啊,我先我先放这吧,待会呢,我我再把它做一个笔记,好把它放这。这个地方,那待会我在我我在整理的时候,整理笔记的时候再说好不好,第二个形式,第二个形式呢,是定义枚举的同时,就定义枚举变量这个形式。这个其实我们是不是也用过呀,哪里用过。是不是在这儿就用了。在代码里面是不是这样用的。这句话是不是定义了一个枚举变量,同时定义了一个枚举类型,对啊,每枚定义了,先定义了一个枚举的类型,这个是,然后呢,同时定义了一个枚举变量,对是吧?还有一种形式,同学们注意听,还有一种形式呢,是省略枚举的名称,直接定义枚举变量,就这样写。那但是这种写法呢,要注意好这种写法。这个枚举相当于说枚举类型只用了一次,以后就不能用了,因为它没有名称。
07:04
这个能明白吗?就这种写法,相当于是。这种。这样使用枚举。那么该枚举类型,类型只能使用一次,后面就不能用了,为什么呢?因为你没有给他名称,在这地方你把名称省略了。那以后你那这个完了过后,你你后面还想再去定义都定义不了不了了,因为你没有名称。说这个这样使用枚举呢,该枚举类型只能使用一次。明白就可以了,也就是说,假如我这样去写也是可以的。啊,我把这个去掉也是可以的。好,这个我就说到这儿哈,那紧接着我们再来看第六个细节,第六个细节呢,我们可以把一个整数转成对应的枚举值,看一个案例。同学们看,这边有一个代码非常的简单,这有一个枚举,Seasons里面呢有四个枚举元素,分别是spring spring summer autumn和winter。
08:06
那么现在呢,这个地方是不是我定义了一个枚举变量啊,那我问大家这个枚举变量定好了过后,你是不是没有赋值。是不是没有复啊,没有复制,当然我可以这样赋了,我当然可以这样复,比如说诶说老师我要复制season。比如说我想给这个C附一个winter,我这样写。Winter。这样是可以的,我也可以直接给他。这样指付,你看我怎样怎样写的,我可以这样付。我呢,写一个int等于四,为什么是四呢?因为大家算算一算。这个是不是一呀。这个summer是二,这个是三,这个是四。那如果说我我就希望用一个int给它转成一个C,再给他转也是可以,你看这个地方是一个整数,我把它转成一个。
09:01
Imunration session给他也可以,也就是说我们知道一个整数可以转成一个枚举值。可以转成一个枚举式,明白这个意思吧,那当然了,我们在前面也讲过一个案例,就是。我们在这个地方,这样负的值。是不是那有些同学就说了,有些同学说老师我能不能这样赋值呢。我能不能这样负责呢?我直接给个三。这个不行。这个不行,为什么不行,你看他说你把一个int类型只分配给这个day是不允许的,所以说你只能给一个问,当然有有一种老师,那我那我就想给一个三也可以,你要这样写的话呢,就按刚才那样子强转,怎么强转呢,写一个对这个memoryary。这样也可以的,哎,这样这样也可以的,这样也可以明白这个意思了吧,好我还撤回去啊,这里面我们讲的这个细节就是哪哪里呢,就是说我们可以把一个整数。
10:06
转成一个枚举类型,赋给一个枚举变量,就这个意思,这个我就不举例了好吗?这个因为特别简单,就是123 123的四,没有哪个同学听不懂。这个一目而了然,好,同学们,那关于我们每举要掌握的六点细节,我们就说到这里。现在呢,我们花一点时间把讲讲过的每一句内容做一个梳理来看一下。那这个章节呢,我们重点讲的就是枚举。来梳理到我们的笔记中去。好吧,走一个。往下拉。好,我们插入一个新的分页符。枚举。这是相当于第八章了。那枚举这块我们讲了哪些呢?首先。给大家提了一个需求。是不是引起大家思考,我们提了这样一个需求,什么需求呢?
11:01
比如说我们希望去对一些只有特定的值这样的数据进行一个使用。那么我们有两个方案,第一个呢,就是放一堆太麻烦了。那么这时我们就引出了枚举。好,这是由这个需求引出了我们的枚举。啊,这是。有一个需求引出这个枚举,那枚举引出来以后,下面呢,是不是我们就说了一下枚举的基本介绍,就是它是。到底是个什么概念,以及它的基本语法,是不是说一下呀?这是枚举的基本介绍。梳理到这里。这么几点好。也并不难。它的试点需要同学们掌握的,还有这边最关键就是它的语法格式要有一定的了解,就这个。这是它的语法格式,我呢也给大家放到一个表格中。
12:00
好,这样子大家一看就明白是这么回事,这是它的一个语法格式,那对枚举有了基本的认识过后呢,是不是我们来一个快速入门?对,引起同学们对枚举的一个思考,那快速入门我们举了一个这样的小案例,是不是这个案例啊,这个案例其实在我们这边也有,就这个题。这边有相应的注释,我还是使用它好不好,把它呢放到我们的一个表格中就OK了。这是这是我们的一个快速入门。对,那么快速入门讲了以后,是不是我们就说了枚举的便利,以及在Switch中怎么使用枚举?好,我们先说的是枚举的便利。放在这了。那么枚举便利怎么便利呢?其实特别简单,就是可以通过加加的方式来处理。对,当然这个如果你用这个加加的方式的话呢,你有一个要求,就是要求我们这个枚举呢,它是连续分布的,你不能像刚才那样子是吧,我们走到这个Friday的时候,突然给他来个90,那这个就遍历出来就太大了手这里面其实是有个前提的,什么呢?要求要求枚举的元素是连续,连续分,连续赋值的。
13:17
哦,对,什么叫连续副词呢?就是呃,就是你这个Monday Tuesday Wednesday等等,是按顺序来的。否则的话,这个就不好使,就会出现便利时,会多一些东西,明白这个意思吧,好,那我现在把这个题拿过来好不好?并不难。放到我们这边来,这是枚举的便利的一个说明。好,我把这一段代码呢给同学们板书到笔记中。这是枚举便利,紧接着是不是我们又给大家举了个例子,说明了什么呀?C语言中在Switch里面也可以使用枚举类型。对,那么这个是讲的是枚举。呃,Switch中这样写啊,Switch中。
14:00
使用枚举,是这样子吧,同学们。那具体来说就是这段话了,那么我直接把案例拿过来放到这里就可以了。大家以后有个印象。放这儿。放一个小表格哈,都非常简单,这些东西。那这块说完了以后,是不是给大家梳理了一下,我们在使用枚举的时候需要注意的地方,还有它的细节一共整理了几点呢?一共整理了六点,我们梳理一下。好。梳理一下前面四点。哪四点呢啊,第一个就是。呃,默认,如果你不复制第一个。每组成员默认是零。对,后续加一,如果我们在实例中,我们在这个实例中把第一个。第一个美女地位一,那后面就二,以此类推。那谁在定义的时候可以买改变这个枚举值,那这个地方呢,我们也举个例子。在哪里呢?实际上是在这儿举了一个例子。
15:01
在哪里呢?在这是吧,如果再写个九,好,这就相当于说改变了它的值,那如果改变这个值呢,那后面这个顺序就会有变化了,对吧,这个顺序有变化,如果你这样写,这写个九。对,那么同学们要明确的知道后面后面这个Friday Saturday就是按照这个十。呃,十一十二来分布的这个我做一个说明哈,做一个说明。说明什么呢?我写到下边吧,说明。说明呃,这个时候我们我们这个Friday Friday就是。就是十了,就是后面是这个。啊,就是Friday这样子啊这个。Friday Saturday都写下。就是十,11和12能理解哈,那紧接着说了13 13呢,我们举了一个例子,就是可以先定义再使用,这个我就我就不说了,因为前面案例太多,12啊,这个十第14题。
16:04
第14个。注意事项我也给大家板,说到这里很简单哈,放这儿。那如果是第,如果是第三一个的话,我们一定要举个例子的话呢,就应该这么去写。怎么写呢?就是我们这儿先定义。是不是先定义一个枚举,然后呢,咱们immation day。OK,然后再写一个D。这就是先定义类型,再定义变量,这个呢是一步到位。那紧接着我们是不是还有第五下一种需要同学们注意的细节,就是在定义枚举的时候呢,我们也可以怎样定义呢?也就是说咱们连这个枚举类型的名称就去掉了,但是这个有细节,那这样用的话呢,咱们只能用一次就不能使用了。对,这个地方也需要同学们小心一点。就是说如果你在。做题或者是考试的时候发现有这么一个用法,不要认为是错的,注意。
17:05
有这么一个细节,他只能用一次,后面就不能使用了。好,最后一个是不是还给大家讲了,讲了我们可以,呃,把一个整数转成对应的枚举值,并赋给一个变量,是这样子吧,同学们。好,我写到这里来。六。好,我们这里首先说明一下,不能。啊,不能直接直接将一个整数,整数付给,付给谁呢?一个枚举变量。变量,但是啊,但是可以什么呢?但是可以将一个整数。怎么样啊,转成枚举类型,枚举类型再付给。再付给没付给这样去。再付给什么呢?每一举变量,这是可以的。明白这个意思吧,就是我们刚才这样写的这个代码,你看就是老师这样写的吗。
18:03
这个地方你给一个Wednesday是没问题,但是你要你要给说给一个一啊,或者说给一个二,给一个三,这样呢,它的编译会会出一个问题。是不是至少不规范,至少不规范。好,那这样子呢,我们怎么解决呢?就是说我们可以转转了过后再付就完事了。好,这是它的一个转换。好,具体来说就这句话。很重要。那这样转完了过后呢,因为你对应的是是它就它就会去找,嘿,到底这个是对应哪一呢?是winter就找到了,但如果你没有对应上,它也会有问题啊,比如说呃,假设你这样写的,你这是从十开始,那他这强转一个四,他是找不到的,那那这个结果肯定也是很危险的了。对不对,那同学们有兴趣可以执行一下,我就不去试了,好吧,啊,这个肯定是对不上的了。好,同学们,那关于枚举这一块的内容呢,就给各位同学讲解到这里,大家好好的把它梳理一下,枚举这块还是比较简单好吧,OK,这讲我们说到这。
我来说两句