00:01
枚举的变利,那说到这里呢,我们应该给同学们说一下枚举是如何变利的,大家看到我们以前面这一个枚举类型为例,比如说这个对,这个就是枚举类型,那么里面呢,有七个元素哈,同学们看有七个元素,但是这次呢,我负值又发生变化了,你看我给它的第一个元素赋了一个一。我给他第一个元素赋了第一,后面我没有赋值了。那会怎么样呢?如果你后面没有负值的话呢,它会顺着这个一给你编号,我写到这里。对,如果没有没有。给对应的值,没有没有给,给编号没有给。赋值哈,没有负值就会干什么呢?就会按照按照顺序顺序。给复制顺序复制。那比如说打个比方,你在这个地方给第一个元素负了一个一,那这个呢,就会默认为二,这个为三,以此类推。
01:08
中间用逗号隔开,那有些同学老师你这个地方为什么有个D呢?大家看啊,我我如果这样写完是不是就相当于定义,定义了一个变量,定在定义个数据类型叫对是放在我们的main函数的外边,那如果说我在这里面写了一个这表是什么呢?这个其实就表示。表示什么意思?我说一下表示定义。定义注意听哈,定义了一个枚举类型。这个枚举类型就是I memory,对,同时注意是同时定义了一个变量。变量叫什么呢?对。就说这句话,其实相当于做了两件事情,哪两件事情呢?第一个它定义了或者声明了一个枚举类型,叫memory day,里面有七个元素,同时呢,它还定义了一个变量。
02:05
叫对这个这个变量,当然它的类型就是啊,类型是小这里。类型是这个。好,这样大家是不是就理解了,就相当于说他一句话做了两件事情,那下面呢,我们就不多说了,看这里for循环先,这方是不是相当于初始化我们这一个day啊,把Monday给到day,然后呢,只要这个day小于等于Sunday。那么为什么他可以这样比较呢?因为刚才我已经讲了,如果没赋值,它是按顺序赋值的,所以说肯定后面就是234567嘛。所以说这个对呢,呃,它可以去进行比较,因为我们讲过,每举它的每一个元素都对应一个数字,所以说它是可以进行比较的,好枚举可以比较,那么这对加加,因为还是一个道理,因为D呢,它是没决定性,它对应一个数字,可以进行加加。
03:00
但是有一点啊,你看这里。这个地方它会给一个警告,但是可以运行,但是可以运行没有什么问题,你们注意观察,我给大家把这个代码拿过来用一下好不好。那同样道理。我们。再写一个案例吧。就不跟他写在一起了,先把这个注销。我们再写一个关于枚举的一个DEMO。零二问题同学们。好,同样道理,我们把后缀给改一下,改成C。他老规矩,我们仍然是include。Include ST dl。让人vod拿过来。好,同样我把这段代码拿过来用一下,因为这个这个代码其实挺简单的,对不对,首先呢,我把这个拿过来。这句话刚才老师已经做了说明了,相当于说他做了两件事情。
04:01
对不对,然后下边呢,下面这段代码大家看能能看懂吧,老师已经在这做了一些注释,因为比较简单,我就不写了好不好,没什么难度。那这个地方呢,你看它的确会给一个error,但是实际上没有没没事啊,我把这个去掉,因为为什么这个return没有不能有了,如果你要保存return写个就行。因为这有你返回一个值,这边返回类型是要接收的啊,要有对应关系,也就是说如果你这有个return语句。那么这边的反这个类型呢,就不能写成贸易的了,因为贸易的是空类型嘛,前面讲过对吧,只要对应就行了。好,那现在呢,我们来运行一下,看看它能输出什么,如果不出问题的话呢,它应该分别输出一。234567,为什么?因为刚才我讲过枚举,说到这里啊,本质是枚举的每个元素,每个元素都啊,都对应一个数字。
05:06
对应一个数值啊,这样子就明白了。好的,那现在呢,我们先来。先直接运行啊,同学们,我们直接运行走起来。跑起来,我们看代码能否OK,你看没有没有问题,是不是1234567啊,那一呢就代表Monday,二就代表我们的这个Tuesday一直推。说这个地方有一个,呃,这个所谓的这个东西,其实并不是什么,不是什么事啊,不是什么事,呃,不要不要怕的一个地方,这是这个编译器,这个编译器的问题啊,编译器它这个C89的一个问题,但是本身是没有错的,也就是说我们枚举的编译是可以这么做的,那我问同学们一个问题,假如说我说假如我把这个改成了三。同学们请思考。会输出什么呀。那是不是第一个就是三,那第二个就456789能理解吗?因为如果没有复制,它会按照这个顺序来给你复值吗?刚才讲过了,如果你给的是三,同学们可以看到,他就从三号开始给你打印。
06:11
对,你看这是三呢,35.789,明白这意思了吧,好,当然我们习惯上呢,还是从一开始编号好,这个就是我们的遍历,那遍历完了过呢,我们再来看一个Switch在枚举里面,枚举在Switch中使用。我们前面讲过Switch语句可以使用什么呀?还回忆一下,我们打开我们的笔记,找到Switch语句,在这个在讲Switch的时候,我说过一个,我说过一句话,大家还记不记得,在这里看一下。大家还记不记得我在这说过这样一句话?说了,嗯,在注意事项里面。在Switch的使用细节里面我讲过。大家看这里Switch的。Switch它的这一个expression这个常用表达式可以是哪些值呢?可以是char short in,那等这样的整形是不还可以是枚句类型呢?
07:06
诶,现在知道了,那现在讲到枚举呢,我们就来看看在Switch中怎么去使用枚举。因为霉菌元素的本质其实还是一个数,所以说到底呢,呃,都是因为整形的原因才可以使用,那同学们我们看一下。这段代码也非常简单,几乎没有什么业务逻辑,就就一看就明白,我给大家说一下就行了,你看这里就是定义了一个枚举类型,我写到这哈。怕同学们看不懂,这是定义枚举类型,这个枚举类型就是我们的CN。季节。啊,当然你也可以认为这个就是一个枚举类型,对吧,只是前面带一个关键字呢,更加形象准确的描述了它的数据类型。那这个地方能看懂是什么意思了吗?这个是不是。定义了一个枚举类型的变量,啊,对,定义了。
08:03
定义了一个一个。一个。枚举类型变量谁呀,就是CN。SE,那么这个变量的类型是不是就是I memory session,它的类型是什么要写的,因为媒体可能有很多,你你得说清楚它是哪个类型,它的类型是这个这个枚举。好,现在呢,他说请输入你喜欢的季节那一二,你看这个地方大家有没有发现spring我给的是一。那大家根据刚才讲解的spring是一的话,那第二个枚举元素就应该是二,这个就应该是三,Winter就是四,能理解吗?所以说你看我这提示的是一表示春天,2SUMMER autumn,三,Winter,四。这张我就输进去了,输进去以后呢,大家有没有发现我在这里直接写的是如case spring。
09:00
Kiss summer kiss autumn winter。看到没有,所以说我们这边就体现出思维语句可以用枚举类型的这个含义了,就这地方你可以用枚举。理解了吗?并不难,对不对?好,同学们,我把这个代码给大家运行一下,你可以先在看一下,如果你输的是一,它就会打印这句话,如果你输的是一个是winter,就会打印出这句话,如果你输的不是12345 1234里面的一个数,它会打印这句话,明白了吗?代码其实特别简单,来给同学们演示一下就可以了好吗?没有难度哈,没有难度,所以老师直接就给大家跑一下就行了。这是嗯,这个是什么呢?这个相当于是。我们枚举类型,枚举在十位中的使用,我这样写吧。一目了然,IM Switch Switch。这样子大家就将来看这个源代码的文件名,就能区分它是干什么的。
10:03
同样把这个后缀脱下。好,然后呢,我们这已然是引入一个include。Include。I'。拉过来。好,如果说同学们现在还有点儿看不太懂诶。关闭啊。如果,如果同学们现在呢,对这个地方为什么返回还不明白,可以先暂时去掉,我们把这个改成VO,好吧,后面我们再专门说为什么这样子的。那现在呢,我们就来开始玩了,代码并不难,比我们前面讲的双层负循环要简单很多。跑一个。跑起来。诶,这个地方应该是前面有一个没有注销的。把这个代码注销一下。来,朋友们加我微信。对不对,好,现在呢,我随便输一个吧,比如说我输一个二。那么这个时候它就会对应到summer,他说你喜欢的季节是夏天。
11:02
对不对,没问题吧,好,那么我这次再输一个。另外的数,比如说输一个八,八在这里面呢,没有出现,那在我们case里面,实际上是匹配不到八的一回车,你没有,你选没有,选择你喜欢的季节完事。好,这个呢,就是给大家讲了我们枚举的一个便利,以及枚举在十位曲中使用,其实特别简单,就是就好像是用了一个整数去匹配一样,明白这个意思吧。同学们,那关于枚举在枚举的便利和在Switch语句中使用,我们就给大家讲解到这里,大家看理解了没有,并不难,好的。
我来说两句