00:02
下面呢,我们继续为大家介绍go浪里面的嵌套分支,那嵌套分支听这个名字就是说在if语句里边呢,我们继续嵌套,继续写一个分支控制,这个就是所谓的嵌套分支,来看一个基本介绍,什么叫嵌套分支啊,同学们看,在一个分支结构中又完整的嵌套了另外一个完整的分支结构,里面的分支结构称为内层分支,外面的分支结构称之为外层分支。实际上就是类似于这种写法,说if表达式对不对,表达式里面呢,咱又写了一个完整的。分支控制,那么这里面的部分。现在我标成黑色的部分呢,诶我们就把它叫做嵌套分支,这种用法用的很多啊,用的很多就是比如说我们是这样一个条件,如果怎么样,里边还要再分条件,我们就会用到嵌套分支,其实这里面还可以继续分,就是如果你还有条件可以继续分。
01:04
对吧,If里边啪啪啪,If里面还可以再在if,但是呢,我们一般在编程中不要有过多的嵌套,因为你的嵌套层数越多,逻辑呢就越复杂。所以说一般来讲,我们建议大家嵌套分支最多最多三层,不要再多了好不好,如果再多的话呢,咱们就得用其他的方案来进行解决,而且一定有其他方法来进行解决,好吧,就是给大家说的啊,就是刚才说的嵌套分支说明一下,说明嵌套分支不宜过多。嵌套分支不宜过多。过多最多呢,最多建议啊,最多我们建议控制在。建议控制在三层。不要太多了,超过三层告诉大家,这个逻辑就变得非常的复杂了,就不好看了。比如说你一幅栏完了过后,再来一个幅,再来一幅,再来一幅,这个代码可读性就很差。
02:03
所以说,我们在实际开发中,最多建议控制在三层。最多哦,我们建议最多啊,这样子我们建议啊,建议控制在三层内就可以了。好的,这是基本介绍,那么老师先把这一段说明呢,放在我们的笔记中去。这块我们介绍的是嵌套分支。嵌套分支对吧。哎,嵌套分支,那同样我们给他来一个标题三。没问题吧,那刚才呢,我们做了一个基本的介绍。基本介绍。做了一个基本介绍,那这里呢,老师说的嵌套分支的基本概念就是这个。是吧,这块我就不再多说了,就是呃,他的一个大致的意思呢,其实描述的也比较清楚。把它放到这儿。当然我又说了一下什么呀,它的基本语法。它基本语法呢,我们把它再放在笔记本这来。
03:03
对吧,就这么一个基本的语法,If if,而且呢,这块我也说了一下,我们嵌套分支呢,尽量控制在三层。这是一个很好的编程,编程的习惯啊,我们千万不要说为了编程方便,我们拼命的写嵌套,写完了过后呢,说实话,你自己杆放久了,过后自己都看不清楚,看不明白了,更别说你的队友了。你你的你的同一队的其他程序员一看完全看不懂,别人就会骂,而且从谁写的狗屁代码对不对,所以说你被骂了心里面也不舒服吗。说尽量呢,不要写的太多,你去看那些高手写的代码,他一般都会在三次以内,所以说这是给大家一个建议。好,有了这个基本语法过后呢,我们就旁的不说了,直接就来快速入门案例。来案例演示应用案例吧。应用案例。应用。案例一。那我们看一段。
04:00
应用案例,那么这块呢,有一个应用案例是参加百米运动会,如果用时八秒以内就进入决赛了,否则提示淘汰。并且根据性别提示进入男子组还是女子组?大家想一想,一分钟思路思考啊。好,如果你是在看视频的,可以先暂停一下,再看老师的介绍。好,现在我们来进行评讲,那同学们看啊,这段代码,其实他的逻辑呢,其实就就会用到嵌套分支,为什么这么说,他说八秒以内进入决赛,否则提示淘汰,这是一副要死,他又说了,并且根据性别再提示进入男子组和女子组,也就说进入决赛。进入决赛后呢,再根据性别提示,那不就在在这个决赛里面再是if else吗?是不是,所以说这个代码其实还是挺简单的,来同学们,我们把这个代码给大家评价一下。好,应用案例一,我们先把应用案例这个要求给他放到这来。
05:04
那现在呢,我们开始走下代码。我们走下代码。好的,那一边分析一边给大家说一下怎么写,那为了方便呢,我们还是老规矩,对吧,在这地方呢,我们新建一个文件。加。叫ex ec03。好吧,然后呢,我们这儿写上一个命。哦,刚才这个应该是建错了,不好意思啊,他直接建成文件。来吧,在这个练习里面,我们重新来建一个文件夹,叫ex e03。对不对,然后在零三里边我们新建一个文件叫闷顶构。所就是我们的练习嘛。好,然后呢,推一个懒啊,把程把我们程T程序的一个框架拿过来用一下。
06:02
放到X13里边开写。啊,首先呢,我们把要求。把这个程序的要求放到我们的代码这块来。好,同学们根据思路走一走。好的,来我们一起走一下啊,来首先呢,我们分析一下这个思路。分析思路其实也挺简单的,对不对?首先呢,应该定义一个变量来表示秒。对不对,定义两个变量,应该是定义一个变量。定义一个变量来接收,接收这个它的用时就是运,就是它的描述。跑步跑步。跑步使用的描述。对不对,然后呢,还有一个变量式来接收它的性别,那这个呢,我们用描述,我们用float吧,FLOAT64。
07:02
对呗,FLOAT64。然后呢,我们再来看第二个呢,就是它应该还有一个变量来记录它的性别,我们就用十寸就完了来接收性别。对吧,它有个性别嘛,性别呢,我们用十寸。好了,这里面呢,会用到嵌套分支。因为因为这个判断是在是嵌套的判套,嵌套的判断。因此,我们会使用什么呢?嵌套分支?没问题吧,分支。好,那现在老师开始写代码了啊,首先我先定一个变量。VAR second。然后呢,怎么样呢,Float。FLOAT64没问题吧,然后呢,我们再定一个,呃,这样先写写下来再说啊,然后我们提示它一句话,Format print n,我们输出一句话,就是说请输入秒述。
08:04
对不对,这样就可以接收了for my.scam。是不是秒数呢,我们接收一下。LN啊,别又写错了LN,然后呢,我们这接收到这个描述叫second。SE,没问题吧?好,根据描述做一个判断吧,Second。Sed,如果它小于八秒内,那就等于八秒也可以。如果它是小于等于八,那说明什么?说明他进入决赛了。是不是进入决赛了?决赛,如果他没有在这个范围里面,那就else,就说直接淘汰,提示一句话,你被out了。初赛了啊,Out。那如果进入决赛呢?根据他的要求说,又根据性别来提出进入男子组还是女子组,因此呢,我们现在又要定一个变量。
09:01
是正,我们写一个尖的。对吧,十寸好,同样我们提示一句话说,请输入你的性别。这,这不就签到吗?请输入性别。那性别的话比较简单,我们直接用阶等啊等来接收好进行判断,看到没有来了吧,判断了吧,如果我们这个性别。它是等于男的。它是等于难。对吧,他是男性,那么这时我们就提示一句话,就说进入男主组。进入决赛。决赛的男子组。男子组是不是?那A10呢?是不是?如果他不是男的呢?那就女的嘛,我们认为format person好,第十句话就说进入决赛的女子组。问题吧,把粘贴复制过来,把这个男改成女。
10:04
好女子。好,女子组好代码就写完了,我们来测一下,看看这段代码能不能跑起来好不好测一下。干湿。那么这个时候呢,我们上一级CD到EXE03,然后。Run go一下是main啊好,这是它会让我输入我们用的秒数,比如说吧,我输一个六秒。看到进去提示输入栏。那么这个时候呢,诶这个笔写错了那。进入决赛的男子组再来一个。好,这次呢,我输入的秒数呢,大于八,比如九秒,直接out了。好,代码写完这个代码应该是没有错的,好,那我把分析的思路和我们的代码呢,放在咱们的笔记里面去。找一个13。好的,来放在笔记位置啊,大家可以参考一下,想一想这段代码是怎么写出来的,好代码写完,那紧接着呢,我们城市追击,我们再来做一个嵌套分支练习,这个练习呢,它是这样子的啊,是一个出票系统,要求大家编写一个出票系统,根据淡旺季的月份和年龄打印票价。
11:22
那么同样道理,也是考虑学生先做,如果你现在正在看视频,你们看一下这个要求四到十月为旺季,成年人。儿童、老人。怎么收费?淡季,成年人和其他的人又怎么收费?好,现在大家可以思思考一一分钟,然后自己先写,写完了过后再看老师的评讲。好,同学们可以先暂停一下视频。好的,那现在呢,我就先给大家来进行评讲了啊嗯,你如果你思考了过后,你听呢,效果会更好。那我们看看这个要求,要求还是非常简单。
12:00
如果这个成立,进到这里面进行多分子的判断,如果这个不成立,直接在这里面再判断。是不是比前面的逻辑要更要多多一点呢?是不是好,那现在呢,我们把应用案例二先把笔记补一补。叫应用案例二。对吧。应用案例二,那么应用案例二呢?我们先把它的要求拿到笔记中来,具体的要求就这么一个要求。出票系统,不然吧。放到这儿。要求已经写的很清楚了,那有了这些要求过后呢,下面呢,我们就来走代码了。代码。好,我们看看代码怎么完成。那首先呢,我们还是老规矩,打开我们的Vs code,把要求先粘过来。我们这边的具体要求呢,有这么多是不是。诶,有这么多,我先把它放到这里来。欧了吧?
13:01
问题。那根据这个代码,根据这个要求呢,我们开始来设计这个分析一下。分析思路,其实这个思路也挺简单,第一步,首先大家看有月份,有年龄,那必然会有两个变量。没问题吧,必然会有两个变量,因此呢,我们有一个。Age。有个month啊。Month还有age的两个变量。两个变,这两个变量呢,我们认为是BAT就可以了,为什么?因为BAT它可以存放一个零到255的变量。225255的值,它完全可以接受月份和年龄对不对,好第二个呢,我们分析出来。第二个呢,我们分析出来就是。他应该会使用到嵌套分支。使用嵌套。嵌套分支没问题吧?好,既然这个分析完了过后,下面我们就来走代码了。根据它的输入,我们来看应该打印怎样的票价,好没问题,现在开始了啊,首先呢,我们先定一个month。
14:09
Mont。好,我们再来定一个年龄,也是一个bit,没问题吧?好,现在呢,我们让他输入他的这个月份和年龄,就是是几月份,是哪一个人去买票,那开始输出。好,请输入,请输入月份。对吧,你旅游的月份。旅游。铝论与女女。游玩啊游玩的月份。好,这时呢,我们接收一下叫试看。怎么样LN把这个mass接收到。同时呢,我们还要接受他的年龄,是不是老规矩,粘贴复制一下。
15:01
接收一下他的年龄。把这个请输入年龄。就是我们的这个游客的年龄是吧,游客的年龄。没问题吧,年底的时候呢,我们接收的时候就是age。也很简单,好,现在我们开始判断啊,判断,如果这个年这个月份游玩的月份它是在四到十之间,那就说大于等于四,并且怎么样month小于,Mont小于等于多少呢?等于。这个十在这个月份之间,我们怎么办呢?我们再进行一个判断,看年龄了。如果他的年龄,你看这帮我们不要完全按照他这个思路走啊,他这个思路看起来有点怪,是成年人是这样子的,儿童这个小于18,老人大于60,干脆我们这样子,我们稍微的灵活一点,我们这样写啊,大家看看老师代码你们能看懂吗?如果年龄大于60。
16:04
如大于60,好,我们就输出它的。输入他的这个票价。你注意看啊。票价是。对吧。好,我这。票价。票票价。票量是多少呢?来我们看看,这时我们可以这样子来输入。票价百分之V,我们这样算一下啊,就说实际上它的,呃,就是。呃,如果是60的话,就是1/3的价格,那它原价呢,你看是六六十,所以说我们我们可以直接打印出来就完了,好吧,直接打印出来就完了,这个也不用去啰嗦了,因为他没有定义这个变量,那如果说一定定变量也可以,咱们可以定一个变量,这是正常价格price。等于。
17:01
Price这样子啊,咱们定一个float。Float变量64对吧,好它。原价就是60块钱吗?那如果说他要打折,现在大于60的话,它打折是1/3对不对,所以说这个时候呢,就是让我们的price怎么样除以三就完了。崔山。好最好呢,给他一个点零。是不是这样,这样很轻松就出来了。因为他是老人嘛,那么else if,看啊else if,如果age怎么样呢?它大于60了。大家看成年人是68~60之间,所以这个时候其实我很简单,可以直接大于等于18就可以了。大家看这段代码是不是就这样写就可以了,周老师你后面还没写哦,你后面还有一个叫做叫做这个什么呀,小于等于60,没有必要再写了,为什么?因为你前面这个条件已经把。
18:02
大于60的挑走了。大于60跳走了过后,再大于18的,实际上就是大于18,在60之间的,其实已经有了。你没有必要再去写一个这个东西,如果你这样写的话,就是没有把这个搞清楚啊,你说说老师,我再加一个小于等于60,没必要,为什么呢?你想啊,A大于60的已经进入到一这个块块里面去了。那余下的肯定都是,就是只要没进入到if里面的,下面的所有的判断都是小于等于60度,所以你这地方没有必要再写这个条件,写了也是白写,而且没有意义,效率还低,直接这样写就完了。大家理解了吗?说大于60的进到这。如果,如果没有大于60,就看是不是大于18,大于18就在这。这不就成年人吗?那成年人的价格呢?怎么样?那就是原价。是不是就是原价呀。不要出任何错误,好,Else。如果说这些都不在的话呢,就是其他条件,其他条件的话,我们看看是什么呀,实际上就是他是小孩子的。
19:05
儿童儿童就半价就小于18的了吗?小于18那就除以二。完事对不对?好,这是一个条件,Else。钥匙就是说他现在这边是什么呢?是淡季。是不是淡季啊,它是淡季。那淡季的话呢,同学们想就要根据他这个逻辑来了,成人四十二十好,这就直接把价格输出来就完了啊,那首先我们看什么是成人if。H成人呢?我们认为大于18就是成人,好吧,成人就大于18。大于18,呃,并且是小于16。小于60号,这个时候咱们可以来个条件,大于等于18。并且呢,Age小于等于小于60吧,啊,60,我们算是老人了,那么说出一句话,价格是。
20:01
对吧,票价。票价是多少呢?好,直接说出来。票价是。40块钱。十块钱,Else。如果不带这个条件,那就是淡季,而且他还不是成年人,那就怎么样呢?就20块钱就完了。对不对,就是20块钱。诶,这样子我就直接。这样子说啊,这样就直接输出就行了,票价40。对不对,这边票价二二十完事。那为了那为了把这个信息提示的更清晰呢,我们把这个输出再稍微处理一下啊,我们写一下把它的月份打印出来。岁月。能能理解吧,这个月份。这个月份。好年龄也把它输出来好不好年龄这月。
21:00
这位年龄是多少呢?这么大的年龄。年龄票价是多少,好,这样子就更清晰了,好这个时候我把我把月份输出来,Mom month,还有他的年龄对不对,下面是不是也是一样的道理啊,一样的道理,这样呢,看起来清楚一点。这个也是一样的道理是吧,把后面的。这个年份还有他年龄呢,一并输出,这样我们可以更好的验证对不对。好,同样道理,这边我就不写了,这个就是淡季了啊,就写淡季。淡季。淡季成人票。对吧,因为他就是成人嘛,这边是淡季,其淡季。淡季的什么呀?就是儿童。儿童和老人的票价好,写完了,那同学们我们来跑一跑,看看代码能不能,能不能跑起来,我先保存,看代码有没有问题。
22:04
好,同学们,代码应该是没有什么毛病啊,没什么毛病好,那为了能够演示我的效果呢,我先把这一块代码怎么样,先注销没问题吧。先从小来,我们运行起来。好。而游玩的月份,假设14月是一个旺季。让让游客年龄,我输18,在18和60之间。那就输一个40岁好,这个时候应该是60块钱。六零月,哎,这个是不是写错了,咱们。看一下啊哦,月份嗨,这样写错了啊,这月份应该是写在前面去把这个month month要提一下啊,我们这样子写。年龄再稍微调一调才好嘞。对不对。把这个稍微调整一下。
23:00
好的,没事啊,没事,我稍微把它调整一下。好调整的调整好了。调整好过呢,把月份和这个年龄呢,顺序也调整一下月份年龄好,我把这个呢提到前面来。对吧,把这个提到前面来没问题吧,也很简单,然后呢,把这个地方的月份。也提在前面来问题把这地方月份呢,咱们也提到前面来。是不是大家看这代码有没有问题,应该没没没有任何问题吧,Mar。价格。Mass价格,然后这边是mass价格好。再来跑一下。这样看起来更清晰一点。好,输入游玩的月份,四月份出一个成年人的年龄,30好,四月份年龄年龄是。60。好,我看看啊,还怎么回事,年龄价格,哎,怎么还是数字搞错啊,还是搞错那这样子。
24:07
我把整个这个匹配一下,更改匹配的啊。减掉。然后挪到这儿来。对不对。好,我这直接写个票价。其实都都写好了,就是这个地方没有整理好票价。对吧,票价V啊。这块。好。好,再检查一下啊,这是月份价格年龄,月份价格年龄应该可以了。再做一个来。四月。年龄30,好,这就对了。呃,四月份票价为60块钱,年龄30没问题,我们再来看一个。假设现在是四月份,然后呢,游客的年龄,比如说是十岁儿童对吧?回车四月份票价为30,年龄为,因为是半价。
25:02
我们再来一个1/3的老人的价格是1/3,对不对。好,我们来一个十月份是旺季啊,年龄呢,我们说大你70岁,70岁应该是1/3的价格,看对不对。十月票价20。20,确确实实是60的1/3年龄70,好,没问题,我们再来出一个淡季的。淡季验证一下,淡季呢,我们来说一个二月份是淡季。淡季我们看成年人是多少钱啊,成年人我们知道是18~60之间。它的价格应该是60块钱,淡季成人票40,好,再来,再来一个淡季。一月份也是不是也是淡季啊,一月份也是淡季,我们来一个非成年人的,就是儿童的票,比如儿童呢,八岁的一个小孩来来来游玩,好,儿童和老人票价20块钱,完全正确,好,经过这个验证呢,说明我们的代码是没有任何毛病的,大家体验一下啊,如果你是第一次学编程,这个逻辑其实相对来说就已经有一点点绕了。
26:05
你好好的理解一下老师写的代码,好好的理解一下好不好,好现在呢,我把这一段代码的分析,还有它的,呃,这个代码的完成呢,放在我们的笔记里面,来大家看看是怎么做的。好,从这开始是吧,诶。从这,这是我们的核心代码。从52行开始截取。52行截取到了七十五行。对不对,52行到七十五行放这。那紧接着呢,把这个稍微的调整一下,七十五行继续截取。因为我没截完嘛,那就七十五行以下的。就是76行。每一行都不要少,少一行大家看起来就比较累了。好七十五行全部结完了。把这个代码稍微的整理一下。好,没问题吧,代码好,那关于我们的嵌套分支的讲解,还有应用案例呢,老师就给大家介绍到这里。
27:05
那同学们呢,最好的方式就是把视频停掉,然后自己呢,敲敲代码,不明不明白的地方自己好好想一想,好不好,自己好好想一想。好,关于这块我们就先说到这里。
我来说两句