00:00
好,那咱们呢,就接着来讲课啊,然后呢,前一天呢,我们是讲到流程控制的啊,今天呢,咱们继续啊来看这个流程控制,流程控制的话呢,仍然属于我们说基本语法当中的一个章节啊,那么这一章呢,我们讲完之后呢,实际上呢,就可以有大量的一些练习,大家可以去做了。啊,那基本上关于变量也讲了,运算符也说了,然后呢,基于我们呃,程序的执行过程当中,你是顺序结构啊,还是这种分支结构啊,还是循环结构啊,哎,相应的很多的小的问题啊,都可以上来,大家可以写一些比较有趣的一些效果了就OK,然后咱们呢,前一天呢,是讲到这个if file了,然后if else里边涉及到一个需求,就是从键盘来获取数据。然后这个时候呢,我们是引入了叫scanner。哎,SC的一个使用呢,也属于一个基本内容啊,大家呢,要掌握一下这个过程当中呢,其实咱们已经使用了面向对象的内容了。啊,因为呢,关于这个类呢,咱们要想用它,其实用了它的一个对象。对,用为它这个对象,就是通过new scanner的方式造了一个对象,哎,这个呢,咱们还没有细讲,细讲那就只能是在面向对象的时候呢再去说了,所以暂且的话呢,大家呢,就把它当成是一个固定的格式了啊,咱们把关于scan的使用是不是写到最后这儿了嘛,这呢其实就是在创建对象。
01:17
啊,然后下边呢,就是调用对象的方法,这个呢,都是面向对象里边这些内容包括它。暂且当成固定格式,OK啊行,然后这个完了以后呢,我们又说了一下,关于这个叫诶random是吧,这个mass里边有个方法叫做random方法,关于这个方法呢,获取随机数这样的一个小的操作啊,涉及到一个公式,大家呢也记一下就行。OK,然后呢,我们再拉回来开始来讲解一下这个分支结构的第二种结构,哎,叫做Switch case,那这个呢,我们也可以呢,把它称为它叫选择结构。啊,选这个呀,选那个呀,啊叫选择结构。好,那么首先的话呢,我们来看一下这个Switch case这个结构的一个语法格式。那整体来讲的话呢,就是长这个样子。
02:00
好,那这个结构呢,猛一看感觉有点绕,咱们把它呢写一写,行,那这呢我们就调开啊,咱调出来咱们这个对应的这个代码的位置,我呢放到这个地盘下。哎,放到这儿了,哎,第三章啊,我们在这里边去写,OK,首先啊,新建一个文本文件啊,这个我们把那名辅缀页改一下,这呢是关于我们的,呃,思维。看case它的一个测试点,Java文件。好打开啊。D盘下载在这里边行,首先的话呢,我块这块呢,去声明这个类啊。哎,十位。嗯,Case的一个test。好,这呢,我们把这个酶方法写出来。好,那么在这里边儿呢,我们去写对应的这个代码,包括呢,对这个知识点呢,做一个测试。哎,这个呢是我们说的叫分支结构支啊Switch case它的一个使用啊,这个呢把Switch case呢,刚才说了又可以称为呢叫选择结构,首先第一个呢,我们来看一下它的一个语法格式。
03:12
好,这个语法格式呢,稍微的复杂一点,我这块呢,自己给大家写一写啊,我一边写呢,大家一边呢去记这呢,首先是一个Switch,然后呢是一个大括号,然后呢,在这个小括号里边呢,我们称为叫什么呀。大家注意,这个不叫条件表达式了啊,前面呢,我们写if的时候呢,叫条件表达式,一提到条件表达式,它就是一个布尔类型的一个结果啊,而我们这里边儿呢,提到的就是一个表达式啊一个呃,一会儿呢,这个表达式呢,我们具体呢,对它进行一个说明。根据这个表达式,它的一个值,我们去匹配下边的这些常量,所以case这块呢,放的是常量。常量呢,可能是啊这个值,那我们就是叫常量一,后边呢是一个冒号,然后在这里边儿呢,写我们对应的这个执行语句啊,执行语句一,然后呢,在这个执行语句最后呢,可能会有一个break的关键字。
04:03
那它呢,就表示结束咱们当前这个Switch case结构的啊,一会儿呢,我们具体说,那还有可能是其他的这个常量啊,那对应的就是这个常量二。冒号一下这呢对应的常量二里边的这个执行语句。啊,提醒一句二,然后它呢,也有可能会有这个break,所以你看我这里边强调点是可能就是有的时候需要,有的时候不需要,这呢也是我们后边要讲的这个叫case穿透的问题,好那么依此类推啊KK4下边常量三常量四,根据你实际情况,你看有几个,然后最后的话呢,它可以有一个叫default。哎,Depot后面呢,就没有写常量级了,就直接一个冒号,它呢类似于咱们E里的。对。Else呢,就是你前面都不满足,那就是其他的,那就A就是默认前面都没走,你就走else,然后这个defa呢,就是前面呢都没有匹配,这个呢就是一个默认的。缺省的啊,这样的一个选项,你就直接呢,走我们这个default就行,它这里边呢,也放这个指语句,这个break的话呢,诶暂且我也就先先给它加上了,好,那么这儿呢,就整个构成了我们这个Switch case它的这样一个结构。
05:12
哎,就长这个样子好,那么这个结构呢,它的一个执行是什么样子呢?这个咱们等下呢说啊我这呢,直接来举个例子,通过这个例子呢,大家来看一看,比如说首先呢,我这定义一个number,这个number的值呢,比如说就叫一。哎,这呢,我就写一个Switch,然后我把这个number呢,就放到这里边儿了。所以首先呢,这个表达式你发现呢,哎,它就是一个变量,这个变量呢,不是波尔类型的。好,然后呢,在这个Switch里边呢,我去写这个case哈,说如果你要是零的话呢,这里边儿我就直接输出啊,比如说这个零呢,它对应的这个英文。第二种是吧。好,这个呢,注意我没有写break啊,然后case一下一啊,我呢也写一个对应的英文,这个就是one。哎,然后对应的我们再写其他几个CTRLCL一下。
06:00
哎,这么着啊,然后如果是二,如果是三,哎这样。哎,Three,好,然后for就不写了啊,直接来一个default。这样啊。那这个咱们来一个叫other吧。保存一下行,那这样的话呢,我就把这个代码呢,就写完了。好,写完以后的话呢,咱们下边就可以去做编译做运行了,那首先大家你猜一下是吧,哎,我要是去运行的话呢,这个程序它的输出结果应该是什么。啊,你看这个零呢,没匹配上是吧,哎,跟这个一呢匹配上了,说按说这个结果应该是万。好,那我们看看是不是只有万啊。哎,在这个位置呢,我们来一个CMD。哎,出来了,哎在这啊,这个我们把它打开。放这儿啊,好,张2C。哎,Switch case的一个特测试啊,点Java,诶编译通过了,说明我们这个语法呢,写的没问题。
07:01
来Switch case的一个test,好,回车来看一下。啊,这个结果呢,咱们发现呢,跟我们想的有点区别啊,除了这个one出来之后呢,你发现后边这个two three和other也都出来了。啊,那也相信呢,诶我们这个出来没问题,那你这个number他也不是二啊是吧,怎么跟这个也匹配了呢。这个明显跟咱们讲的if不一样。呃,If else的话呢,就叫哎二选一呀,多选一啊,一旦呢,你选一个一之后呢,哎,后边这个执行语句呢,是肯定不会再去匹配了,直接就跳出if else结构了,而这里呢,发现不是这样子的。啊,这个呢,注意它就是这样的特征啊,要想你表示说我就想希望希望你输出是个万,后边这个呢,都不执行,那怎么办呢。对,必须得在这儿加一个关键字,叫做break。OK啊,那一旦我加上这个break之后啊,CTRLS来我们再去做一个编译。来再运行发现呢,这时候呢,就只有望了。
08:00
哎,那此时的话呢,就相当于我们number呢,匹配零没匹配上,匹配一匹配上了,一旦匹配上以后呢,执行它的执行语句,执行完以后呢,紧接着有个break,它呢表示叫啊结束当前的哎Switch case结构,或者说呢,叫跳出当前的Switch case结构。啊,也是可以的行,所以说呢,我们后边这个two three other就不再执行了啊,那也有可能你这个这个一开始这个number它不一定是一,它要是二呢,那么还有可能会出现two three和other了,所以这时候我们就要求每一个后边呢都得。哎,是不是加上一个break了。哎,这个呢,要注意。哎,都得加个break,那最后这个要不要加呢。这个似乎加不加都行,因为他已经是最后一个了是吧,他是最后一个的话呢,这个你要不加的话呢,他这个往后走,他后边也没东西了啊,所以这个呢不加呢倒也还可以。行,这呢,就我们说的整个这个结构。啊,那么在实际开发当中啊,我们这个break呢,一般情况下呢是都有的。
09:02
啊,一旦呢,每一个都加上break之后,这个时候呢,如果我说叫多选一是不是可以的呀。哎,对啊,这个呢,就实现了类似于咱们讲的if这样的特征,叫选一啊,只能选一个,你不能选多个了啊,那有同学可能会想说,那既然如此,那我们这个为什么不从语法层面,也就是说这个编译器哈,就校验一下,比如说我写three case,我要是万一忘了加break了,那就给我们报个错误多好啊,提示我一下说你忘了加了。你发现没有是吧。对,那就意味着在有一些情况下呢,我们就不需要这个break言ID呢,就是你进入这个语句之后呢,我就希望你继续往下执行。啊,那么这呢,就是Switch case跟if else不一样的地方。哎,这个咱们一点点展开说啊好,那首先的话呢,基于我们刚才这个代码呢,咱们写它的一个执行过程。
10:00
哎,执行过程,这个过程的话呢,哎,我这块用语言来描述一下,哎大家呢,来把这个记一记啊,我一边写大家一边记,其实这个过程我大家笔记里边都有啊,我不粘了啊粘过来的大家可能一下子粘过来没什么感觉,我写大家呢去理解,去记忆啊说呢嗯,首先呢去根据。哎,表达式中的这个值是吧,依次。哎,匹配。啊依次匹配啊,我们这个case语句啊说一旦呢与某一个啊case中的常量相等,注意。那这里边儿呢,我们强调一点,就是这个表达式呢,它一定是跟这些常量的,是用等等来进行这个判断的啊。啊,就是判断这个内容呢,是不是相等的啊,这个如果以基本数据类型来说呢,就是判断这个等等了啊就是你你你不能说呢,哎,这个表达式值是不是能表表示这个大于某个数,小于某个数,这个事儿是做不了的啊呃,一旦呢,与某一个case中的常量相等,那么。
11:00
哎,就。啊,就执行词啊,Case语句中的啊,或者叫直接执行case中的这个执行语句。啊,就执行我们对应这里边儿的这个执行语句啊,那么一旦执行完死执行语句之后怎么办呢。执行完此执行。语句之后。啊,这个时候呢,我们就得接着来看了哈,接着的话呢,就有这个叫哎情况。一是这个情况一呢,就是说如果我们这个执行语句执行完以后,后边呢,有这个break。啊,那这时候呢,我们就执行break,然后跳出当前的Switch case结构啊。这个执行完K4,这样我写到这儿吧。执行完词case语句之后啊,然后我们下边这个情况一,然后呢,就是呃,遇到breaker。啊则。哎,执行break后跳出。当前的。
12:00
哎,Switch case这个结构。行,那整个呢,我们这个程序呢,相当于就关于这个结构这块呢,就结束了啊,这是其中的一种情况,那么也有可能呢,我们这个情况呢,就没有遇到break。啊,而且呢,咱们当前这个wi k结构呢,可能还没结束呢,啊,就比如说还没有到这个default这块呢,但没有遇到break呢,我们说则继续执行其后的这个,其呢指的就是我们这个case啊,执行其后的case中的执行语句。注意你看啊,诶如果呢,像我们刚才那个程序,我这是个一啊,这个呢,我们输出它以后,如果此时这个位置没有break,它会继续向下执行,向下执行的时候呢,并没有说拿20NUMBER又去跟二去匹配了,没有直接就执行其后其他的case中执行语句了。根本就不考虑这个事儿了。啊,这个呢,就是我们往下继续向后执行这个case定语句。啊,这样的一个场景啊,然后这种情况的话呢,就点点点这么依次往后执行是吧,然后直到。
13:06
哎,直到是吧,直到什么呢,遇到break。那就遇到break呢,又跳出当前这个c case结构了啊或者呢。哎,执行完呃,所有的这个case及啊咱们的default中的语句。哎,中的例句,然后呢,来退出,诶当前的这个Switch case结构。哎,这个看大家能看懂吧。哎,这呢,就我们说的整个这样的一个过程啊,大家呢,稍微的去熟悉一下,那么咱们里边啊,把这个事儿什么事儿啊,就是如果呢,我们匹配某一个常量了,进去执行这个执行语句,然后其后这块哎没有break,然后他就接着往后走了,接着往后走的话呢,这块也没有break,接着往后走,把这个呢,哎执行了你这个分支之后呢,又执行其他的分支,这个事儿呢,咱们称为呢叫case穿透。啊,听着挺高大上的,其实呢,也很好理解。
14:00
那K穿透,穿透什么意思呢?本来呢,我这块匹配的是一,结果你发现呢,他把二的这个三的呢,也有可能执行了,就没有break的时候,这就叫做穿透。那一会儿呢,我们专门针对传统呢,诶再说两句,OK,行,这个呢,就是整个这个Switch case它的一个执行过程啊,那对应呢,我这个课件里边放了个图,诶大家你稍微看一下这个图是不是清晰啊。哎,首先呢,计算一下我们这个表达式,此位置当中呢,跟case里边的这个常量一看是不是匹配,哎,如果匹配了就执行这个一句块,进行完以后的话呢,看一下有没有break,如果有break直接呢就结束了,没有没有直接进入你常列二的这个执行语句块了。不再考虑它是否跟这个常量作用。相等的判断了,直接执行它,另外以后的话呢,接着看有没有break,有那就结束,没有没有接着执行,哎,就是这块没有走这儿啊,没有走这儿没有走,这这不叫穿透吗。哎,就这个啊,哎,你要是你一开始一个表达式值呢,是等于,比如说表达式,呃,常量二了啊,那你就从这开始走,还是刚才这样一个思路。
15:01
诶OK啊,这个事儿的话呢,大家要清楚行,那这个清楚以后呢,诶,咱们接下来就来说一下这里边其他的这样的一些细节点了,好这呢,我们写一个三啊做一个说明,那这呢,咱们就一个个来了。首先第一个点啊,整体结构呢,我们清楚以后呢,从上往下顺序去看,首先这个叫Switch,这个叫case,这都是关键字,所以呢都是小写的。啊,这个呢,记着别写错了啊呃,然后接下来的话呢,这有一个叫表达式,哎,那下边呢,我们对它呢进行一个说明,此位置当中这个表达式呢,只能是某些特定的数据类型。第一个啊。哎,Switch中的表达式只能是。哎,特定的。哎,数据类型。这个如像哪些呢?哎,我一边写大家呢一边去记啊,哎,这里边儿呢,涉及到了我们基本书籍类型当中的一部分。啊,对应的有bit,有short,有char,有int。
16:03
哎,这儿呢,我写了四种,还剩四种,那四种不行。哎,这四种都可以。啊,那压之呢,就是我们这里边呢,哎,就只能放这些,哎这个你怎么去记呢。啊,怎么去记呢?对浮点数不行。啊,然后呢,这个long类型的也不行是吧,哎,布尔类型也不行。你那样说完之后,跟我们广西这四个也没啥区别是吧。嗯,其实记的话呢,我觉得有个小技巧怎么着呢,大家你就记这个,你会发现呢,这四个呢,像我们讲那个自动力应提升的时候呢,那前那几个是吧。这不就int之前的这几个嘛,是吧,嗯,然后呢,其实这个呢,你还可以这样去看哈,这个Switch当中啊,你可以理解它就让放int。你可以这样去理解啊,他就让你放int,那你说我这块放个bad呢。我可以把你看成是阴他呀。是吧,哎,那这不就相当于我们自动类型提升里边,诶这哥仨的话呢,这不都可以自动提升成它。
17:00
哎,那么这样,我们这四个这不一下就记住了。In呢,再往后的那个long啊,Float呀,Double啊,本身波尔还不行,那就都不行了。哎,这样去记更方便一点,好,那这四个的话呢,是在最初定义这个Switch的时候呢就有了,然后后边呢,我们会有一些新特性啊,我们额外的再去记一下剩下的这个,诶第一个呢,叫做枚举,这个枚举的话呢,是我们后边讲的一个特殊的结构了啊,叫枚举类了,然后这个枚举的话呢,它是在JDK5.0的时候呢新增的啊。啊,因为5.0的时候呢,使用了一个因我们的关键字呢,去定义枚举类了啊,所以它能够往这放。啊,这个呢,咱到后边呢再说,然后另外呢,就提到了一个这个string啊,String的话呢,原来也不能放,现在呢是可以放了,它是这个JDK7.0的一个新车型啊。好,那就意味着咱们现在装的是GTK10起了,那肯定是能够识别钝的。那我们就可以呢,针对于string这块呢,写一个例子,哎,这个我们,哎在这。这个咱叫一个呃,另例是吧,啊这个的话呢,因为整体也比较简单啊,这整个呢,我就从这个课件里边,咱们粘一个这个例子就行了。从这。
18:06
到这儿啊,CTRLC粘过来咱们看一下。哎,这个分析一下就行,你看啊,这呢是一个string,是一个叫season,就是季节这上写这个叫summer,然后呢,我们把这个字符串呢,这就放这了。符合刚才我们说的,哎这样的一个类型。好,放在这以后的话呢,我们就case去匹配,注意这时候的话呢,我们这个因为你上面这是string类型,所以你看这我们写的也都是string啊。接着把这个双引号呢给它加上,现在如果你要是春天的话呢,就春暖花开break一下,哎,夏天夏日炎炎,Break,那我加上break之后呢,相当于就防止了kiss穿透。哎,注意啊,你要没有这个break呢,这不就直行直行下边了,这叫传统。诶,这个就完事了,比较简单,行,来我们做一个编译,看看语法上呢是不是可以。哎,说明呢,这个是完全支持没问题,行,然后接下来啊,我们写个Java啊,这个直接我们就。调一下就行啊,哎,这边呢,我们写的是一个summer嘛,跟这个一匹配,叫夏日炎炎。
19:04
那如果要是没有break呢,这不就把这个也输出了吗?对,就是这样一个思路,我就不演示了,好这个呢,就咱们说的第一个点,关于Switch啊,它的一个说明。啊,这呢,大家要稍微的可以记一下啊,这第一个点第二个啊。随着完了以后呢,接着呢,我们要跟下边这个case呢去匹配,注意case这里边呢,我们写的就是常量,也就是说呢,拿这个表达式呢,呃,或者你把这个表达式看成叫变量也行哈,跟我们下边这个具体的这个常量值呢,去做这个等的这种判断,看看是不是相等,注意这个时候呢,一定不能够去写一些范围啊。啊,他就就是拿等你说我这写一个number。啊,这呢,我写个零,是不是说这个number大于零的意思啊,哎,不可能表达这种意思的,你也不能在这个位置呢去显示写成范围。啊,这个要注意啊,哎,这边我们要说的这个case后。啊,都是根的,这个叫常量啊,然后呢,使用表达式。
20:03
啊与这些常量啊做。相等的判断。嗯,相等的这个判断。哎,不能来进行这种啊,叫范围的一个判断啊。哎,这个呢,大家一定要小心点啊,这个不能随便写的啊,那这块呢,来咱们举一个这个错误的例子啊。举一个错误的这个例子。那错误例子啊,比如说啊,我这块就随便我再整一个叫number了啊,这个呢,我就写一个,比如说20啊,下边我想判断说你这个number呢,是个正数啊,是个负数啊,还是个零啊。哎,如果你试图你说哎,那我用three去写,你看啊,所以是你把这个number往这一扔。然后呢,这么着一下。啊,你说我我我这样啊,说kiss一下这个number呢,如果你要是大于零是吧,我这呢,就说你是一个正数。啊,我就从这儿摘一下啊。
21:02
哎,正数。哎,这样啊,然后呢,你要是一个啊小于零就是一个负数。这个行不?不行啊,绝对不行。ATA。哎,Break呢,加不加都行,但是呢,我们就先就加上啊,一会儿呢,我们再说他的事。现在就是零。哎,这样结束。所以这样写是不行的啊。来编译一下。哎,这块你刚提到78行啊,81行,78是这81是这儿啊,这里边就提到说不兼容的类型,但是他这块报的信息呢,你看是这个啊。你看那个报的信息,你能不能理解。说布尔呢,无法转换成。诶这块呢,你可能我们去理解说你只是写范围了,诶你可以从这个角度说说是错的哈,还可以从什么角度说呢。
22:03
人家这是一个in特性的值,它就是拿它去跟这个数做相等的判断的,你这儿呢,是不是一个布尔类型啊。对你一个,呃,20的这个in型的一个值跟布尔类型做运算了,咱们前面讲了,哎,布尔类型跟其他那七种。基本税率他们之间是不能做运算的是吧,所以这块呢,他们就报道说是这样的一个问题啊。行,那从这个整体上来看,你就记着我们不能够去写范围的啊。那再换个角度去说,如果要是能这样写的话呢?你说他跟if else这有啥区别呢?这不就成完全一样了吗?是吧?If else之后就相当于if大于零一,呃,这个RL小于零是吧?没什么区别了,那我们没必要定义两个完全一样的结构了,那有啥意义呢?哎,所以说不行啊,这个注意错误的例子编译不通过啊。哎,这个我们把它注释一下。这么着啊好了,那么关于这个three case这块呢,Case这块我们就说清楚了,那这个说清楚之后呢,哎在哎宏观上去看一下啊,这是一个表达式,或者叫个变量,它跟这个case呢去匹配,然后呢,而且只能是判断这种等的关系。
23:14
那大家想想,如果这种情况特别多的时候呢。似乎用Switch case就不是特别靠谱了。大家觉得呢?你比如说这个需求哈,刚才我说了一个说判断一下这个数是正数还是负数还是零,你要是用Switch case写这个能写吗。啊啊,那咋写。啊。没头啊,你证书那哪有头啊?是吧?对,就是你要判断这个数是正数还是负数的话呢,那不就用if几号代码就搞定是吧,你要写three case就搞不定,因为呢,它这种情况呢,它是。无限的是吧。啊,无线是一种搞不定的,另外一种就是你可能是有限的,但是呢,这种情况太多了,我们也不太好弄。
24:02
你比如说你高考考了这个分数,他从零分一直到750分都有可能,你列一下K750种情况,那那也受不了啊。是吧,哎,也就是说呢,我们这个three case啊,基于刚才说的,它只能跟这个常量做匹配,所以呢,一般的我们在使用它的时候呢,这个case的情况,或者说呢,这个表达式取值的情况通常都不太多。啊,你比如说咱们后边做这个项目里边哈说呢,我们写一个客户关系管理系统,这个管理系统当中呢,我们啊,一运行这个界面当中就有几个选项,第一个要显示当前系统当中的客户,第二项的话啊,这是第一项啊,第二项的话呢,就是添加啊客户到当前系统当中啊,第二呢就是啊第三个的话呢,你是诶删除当前系统中的一个客户。一个第四个的话呢,就是修改当前系统中的客户。诶,第五项的话呢,叫退出。那么接着你让用户呢去选,说你从一到五里边,你去选一个选项,呃,然后呢,你看你具体要做什么操作,这个时候的话,你看就这五个选项,我们就可以用Switch case呢去做,哎,让用户呢写个数,这个数的话呢,我们使用scanner scanner完了以后得到一个in性的值,然后呢,把这个值呢往这一放,Case一下,如果是E,那我就显示当前客户,CASE2的话呢,诶,我就是那添加一个新的客户啊,以此类推。
25:15
情况不多,一旦情况要特别多了啊,这个时候呢,我们用它呢,就不太靠谱了。哎,这个大家要注意啊,行,这通过这个点呢,我们来说一下,这个叫三啊。哎,这个是三啊,就是开发中这个,呃,使用Switch case时。啊,哎,通常这个case啊,匹配的这个情况。哎,都有限。啊,都有限啊,就是不会太多啊,一旦要多了以后呢,我们都不会考虑是使用四维Case了。行,这呢是关于它,然后呢,下边这块呢,我们在case里边可能会出现这个break关键字啊,上面其实也提到这个事儿了,我们再稍微的说一嘴啊break它呢,诶可以使用在。
26:01
咱们的这个a Switch case结构中。啊说呢,一旦执行,哎词break关键字。哎,就跳出。来跳出哎当前的这个,诶四维K4结构。哎,结构嗯,OK啊,这就完事了,相对来说比较简单,然后最后这个呢,还有一个叫default啊,诶把它呢,我们再说一嘴,这是一个五。诶,关于它这个使用这个default的话呢,它就相当于是一个缺的一个选项了,就你前面这个case呢,如果都不匹配这个呢,自动的就进入到这个default当中,是default的话呢,我们简单来说就是啊,类似于这个if else。哎,中的这个else结构啊。那也就意味着就当你前面都不匹配啊,就执行它了。那么这时候呢,我们再提一嘴,前面讲if的时候呢,说这个else呢,其实是可选的。应该还有印象吧?咱们我看是写哪个的时候是写这个吧。
27:04
写这个是吧,你看在这个时候呢。呃,后边我们提了一下啊,说这个else呢,你也可以没有啊,比如说当时呢,呃,考试成绩这个奖励的事儿,你要是考了这个不及格的话呢,这个就当没发生一样啊,也没有任何奖励了啊,也不打你一顿了,这个你可以把这个else呢给它去掉,那么在我们这里边儿呢,我们说这个,哎,Default的话也同样的道理,你也可以呢,不去写这个default,你说我就没有这个选项。啊也OK啊,比如这里边儿,你看我把它呢,就。这样注释一下。哎,这个往前对齐一下啊,保存来我们再去做一个编译。哎,你看是通过的啊,说明语法上呢是OK的啊行这呢,我们说一下它呢default。哎,是可选的,可选的就是你根据需要看看有或者没有啊,然后再来一个啊,这个点的话呢,跟L就不一样说,而且位置是灵活的。啊,这个的话呢,跟这个else不同,什么意思,你看啊,以这个题目为例,这个default吧,Default的话呢,你看我CTRLX,我呢,甚至都可以把它写到开头。
28:05
你看我这时候我就写到开头了,首先CTRLS,然后我们再来。编译啊过了。说明语法是支持的。啊,那比如说我这块呢,去写的还是个一哈,我要是运行的话呢。是不是还是万。还是吧。啊,那我这块我改成是一个十。啊,那么这时候呢。哎,对,这时候呢,出的就是other来,我们走一下。编译,哎,这时候呢,就是这个other。啊,就是这块呢,其实它还是相当于这样做一个判断啊,走这个default,呃,那如果这时候我这个default啊,有个小细节点看一下我把它给注释掉了。那么此时呢?Other完了以后问题有没有zero呢?哎,这个时候有你看编译运行看other完以后有个zero,相当于这块有个穿透的效果。
29:02
啊,这样啊,哎,那我们就提到了,哎,如果呢,你要是把这个位置写到前面的话呢,要防止穿透,加上break,如果呢,本身这个default你就在最后了,这个呢,其实就可加可不加了。哎,行,哎,虽然说这个位置能放在前面,但是哈,咱们开发中呢,一般都不会把它放前面的上来呢,我们都是写具体的匹配情况,不匹配了我们再找个地方的,所以还是习惯上写到最后。这呢,就我们说的这个default这个情况好,那这块说完之后的话呢,关于这个整体结构的使用呢,基本上也就这样了,这就算它的一个基本使用。
我来说两句