00:00
大家好,我是海波老师,我们接下来继续来讲解我们Java流程控制当中的分支执行,那么我们前面把多分支、双分支和单分支都给大家讲了之后,我们还有最后的一个分支执行给大家讲一下,这个分支执行就比较特殊了,为什么?因为啊,它这里面的第二步啊,它判断执行某一个分支的时候啊,一旦这个分支走完了之后,它会继续往下面的分支去执行,也就意味着它们之间就有了关联,哎,就是这个意思。说一下同学们,我们这种分支情况跟前面有点不太一样,所以语法上也会有所变化,所以呢,我们这里呢,拷贝一个新的代码,诶咱们拷贝拷贝以后呢,我们写上一个零三,诶好点击OK,同学们跟前面有点不太一样了,不太一样的话,我们这里呢,把诶我把咱们的这个第一步,第二步,还有我们的第三步呢,诶把它去掉,去掉以后我们在这个地方我们都去掉啊,咱们叫特殊的分支结构,叫特殊啊的分支结构,所以啊它的语法上也会有变化。那么我们的这个东西,大家回过头来再看一下我们的图形,你会发现我们当前的第二步操作呀,它其实也是每个分支都可能需要判断一下对不对,诶,所以我们这里说一下,我们写上一个叫int,我们叫I,它等于十好了,写完了以后,我们要用一个特殊的语法,咱们叫Switch语法。
01:19
这个语法当中就要判断我当前的I,它的取值到底是什么了,所以呢,我们写上一个大括号,我们基本的语法是这个样子的啊,所以我们的语法结构应该是我的Switch,然后写个括号,括号里面就是我的数据,然后呢,我们再写个大括号,哎,就是这样,哎,那好了,老师,那么你的使位置这个关键字用来做特殊的判断,那这个判断的数据应该怎么判断呢?诶,你写个case就行了,你不说了吗,叫分支嘛,好,你就写个十。你写个十什么意思,就是判断你给我的这个I,它是不是我的十,如果它是我的十的话,我们就写上一个冒号,然后呢,我们后面写上打印,诶我们就写上它,我们叫做分支,我们的一。
02:04
然后呢,我们再来拷贝,拷贝以后我们再往下记住我的第二个分之,我写个20,哎,第二个判断了嘛,对不对,好,我们再写上一个分之二,以此类推,我再写一个吧。再写一个就可以了啊来,我们写上一个我们的三,我们写上一个分之三,诶可以了,好了,同学们,我就按照我刚才的分析啊,我们这个地方有一个I等于十,然后呢,我加了一个关键字叫十位置,就是用来做判断的,这个判断就判断你的I到底属于哪个分支,那我得一看,你这个I不就是十吗?好,按照我们的流程上来讲,它就开始走分之一了,所以我们的分之一一定会先执行,但是你要记住分之一它走完之后,我的箭头会继续往下执行,所以它就会走到这个里面,它还会走到这个里面,诶老师呀,它不是没有匹配成功吗?大家记住了,我们其实这个20和30都没有匹配,为什么呢?因为它的匹配顺序就是先匹配第一个,所以根本就没有到这两个对不对,所以呢,也就意味着它走完这个以后,根本就不用判断这两个值,为什么呢?因为这个已经成立了吗?它成立了,直接顺着往下走就行了,它是一根线呢,同学们,所以啊,123它都会直行,所以咱们运行一下。
03:22
运行以后看结果,你会发现第一步第二步1233个分支都执行了,然后这是我们的第三步对不对?哎,老师,那万一我的这个I的值是我们的20怎么办?记住了,同学们,如果它是20的话,第一个分支就不成立了,它就不满足条件了吗?不满足条件这个就打印不出来了,它就开始判断第二个分支了,那明显呢,你的这个20和这个20是相等的,那么相等的话就会执行我们当前的分之二,但是记住了。K 30是不用做判断的,所以它会继续走分之三十,对不对,就是这样,所以现在的打印结果应该是123,再加上我们的二和三,所以运行一下,运行以后看结果,哎,这个时候你会发现分之二和分之三它不都有了吗?诶好了,那老师呀,那我再改成30呢,记住我们改成30以后,跟刚才的判断逻辑没有任何的区别,它还是判断第一个判断两个值相不相等,诶30和十不相等,诶30和20呢也不相等,这个时候30和30就相等了,所以它就会走分之三,好,我们再来运行,运行以后看结果。
04:30
你会发现没问题吧,哎,老师,那如果你把它改成事实呢。你就会发现,如果你要改成40的话,这里的条件没有一个是成立的,也就是说十二十和30它都匹配不成功,大家看这个图,你会发现我们有一个箭头其实是可以直接往下的,对不对,这就是一种可选的感觉嘛,你可以走这边的分支,你也可以不走嘛,那么如果你要不走的情况下,那么这时候它就直接来了第一步,第二步和第三步吧,所以我们运行运行以后看结果你会发现只有这三步没有分支,对不对?哎,老师,那我能不能是必选的呢?什么叫必选的呢?就意味着我们必须要走里面去,你不能说不走啊,也就意味着我们当前这个箭头可不可以不走它呢?我们说是可以的,也就意味着我们这里也存在可选和必选的概念,只不过呢,我们这里啊,默认情况下它是一个可选的概念,如果你要想让它必选的话,就得增加一个特殊的关键字了,所以呢,我们把这个Switch语法的流程呢,给大家去用文字描述一下。
05:34
我们的这个Switch啊,它会什么呢?Switch语法,它会对我们的数据呢,进行我们的判断,如果它等于某一个我们叫分支数据的值,那么它会执行对应分支的逻辑代码啊,咱们的逻辑代码。如果我们的一个分支都无法匹配,那么我们一个分支啊都不会执行,如果想要无法匹配啊,匹配他也需要执行分支。
06:07
那么我们可以增加default关键字。什么意思,就意味着你不是现在三个分支都匹配不上吗?好,我再加一个,这个时候我们写上它,我们叫做诶,拿过来我们叫default,然后呢,我再写上它,我们就来拷贝了,拷贝以后我们就写上它,咱们叫做其他分支啊,咱们叫其他分支,这个记住啊,就是必选的了,就是你上面三个如果跑不到的话,一定会走它,这就是我们default它的作用,好了,我们来运行一下,看结果运行。运行以后你会发现前面三个不满足,这个是一定会走的,诶,这个就叫必选了,能明白我说的意思吗?这里的de fot跟咱们前面讲的那个else的感觉还是有点类似的啊,哎,老师呀,这个倒是没问题,我也能明白,但是呢,我能不能希望这样呢?就是说当我的第二步走完之后,我判断走了分之一,但别往下走了。
07:04
对不对,我既然都走到分之一了,那我直接走到第三步行不行,就意味着我跳过去,同学们,我想把后面的分支我跳过去,我直接走到我们的第三步,我这么写行不行呢?这个其实告诉大家也可以,就是跳出我们的逻辑,什么意思呢?咱们回过头来咱们说一下,如果,如果我们执行我们某一个分支后,他不想继续执行其他分支,那么我们可以使用break。关键字跳出我们的分支结构,这个也是可以的,所以大家会发现我这里如果写个十的话,我们好默认情况下我点击右键,诶运行,运行以后大家会发现我们的第一步,第二步123,其他还有第三步,对不对,同学们就是这个意思,好那么大家看一下,第一个执行了,它执行了,他执行了,它也执行了,对不对,没问题,可是我刚才说过了,当我执行完它以后,我不想往下走了,我想直接跳到这来怎么办?我这么写,我叫break,诶我就加break关键字就行了,你加上以后它就叫切断的意思,就是跳出我当前的分支结构,所以呢,我们运行一下看结果,你会发现,诶,好像没有其他的分支了吧,诶老师呀,那你要照这么说的话,我能不能,我分之一走完了以后干嘛呀,我们走分之二再跳出可不可以呢?哎,我这么写。
08:31
可不可以呢?其实也是可以的,记住啊,这都是我们自行来选择的,也就意味着我把箭头画一画,我先走第一步,把箭头给它变成红色,然后呢,我们走这个分支对吧?我们走这个分支,诶,箭头变成红色,然后呢,我们走到了分之二,诶咱们的分支二,那么继续我们开始要走这个箭头了,这个箭头就直接走到了第三步,所以第一,第1/2,分之二和第三步,那么这个时候你就不能跳出了,你不跳出的话,这个break你就不能加了。
09:02
那么你就开始要往下执行了,往下执行你走到分之二的时候,同学们记住了,这个时候我就要跳出,所以把break呢给我放过来好了,放过来以后,现在我们运行一下,看结果,看看给我运行的结果是否是相同的,我运行运行之后你会发现,诶,第一步,第二步分之一,分之二,第三步,你看看没问题吧,诶,所以啊,我们这种方式还是非常灵活的,但是这种分支结构有一个不足的地方,怎么不足呢?我们这个K呀,它只能等值判断,也就意味着我们前面那个if呀,可以做范围判断,这个地方有点它不太一样,这个需要根据我们实际的使用情况来选择使用哪一种分支结构的语法啊,我们只是把这种语法介绍给大家,没有说谁好谁坏,你要根据况自行选择啊。
我来说两句