00:00
各位,那现在前面我们是不是讲了一些Switch的基本语法呀,包括它的使用细节,但是大家都知道啊,光说不练那肯定是不行的,最后我们说了那么多,但是你一个练习没有的话,大家对他总是没有认识到位的,就说你说了那么多没有练过,没有用,那现在大家看,我给大家布置了Switch的课堂练习,一共有四个。那么大家看到这四个人,前三个,我给同学们写一写。第四个题呢,要求同学们自己。独立的完成好不好,所以说如果说你现在是看视频的同学呢,你可以先暂停一下视频,然后呢,你练习完了过后再来看老师是怎么做的,来吧,我们先给同学们。一起来说一下。你们先思考一下啊。好,现在我们来开始做这个评奖,我们现在做一个评奖,前四个题我们写到这里来。Switch的课堂练习。
01:00
所以是课堂练习对不对。跟上了思路。那课堂练习呢,我们给大家来一个标题三,一共呢有四个题,老师评讲前三个。第四个题要求你们自己去做对照门画弧,你做的出来吗?不然。第一个题,第二个题和第三个题来吧,我们一起走一走,先看第一个题。那同样道理,我们新建一个文件夹在这里,对不对,这个。EXE e0,四。好吧,然后呢,我们新建一个文件叫man顶go。把作业写到这里。Package。PKG。妹,然后呢,写一个赢一个包。Import。然后M,然后呢,我们写上一个主函数me。我们第一个题的要求如下。
02:02
用Switch完成。他说啊,要求是启用Switch,把小写类型的char转成大写的,而且呢,它这地方要求是只针对abcde,其他的输出other,而且呢,看它样子是不允许使用函数。对不对,他不允许使用函数,那我现在呢,就直接来进行完成,那现在我们这样说啊,我们直接先输这个我就不分析了,直接删代码了,比如说他输了一个char。输了一个char,那么我们用best来接收,我们输出一句话说,请你输入,请输入一个字符。请输入一个字符没问题吧,然后呢,我们接收一下form might.scan f格式化一下。按照字符的方式来接收艾特符号,艾特符char。没毛病,然后呢,我们进行一个Switch判断。
03:00
Switch。S wi CHR,如果开始比较了啊,如果它是等于小写的A,我们就输出。对不对,我们就输出大写的A,这个地方我就很笨了啊,我用了一个最笨的办法。用了是最笨的一个办法。其实我们还有很多其他的方式,是不是我们根据阿斯克玛给它加一个一个多大的数就可以转成对应的大写的,或者减一个多大的数就可以转成一个,呃,大写的,那么这块呢,我就用一个最笨的方法,就是因为它的数也不多嘛,就五个,所以说我一一匹配完事。就不做那么复杂了,来,直接往下复制。如果这个K它是小写的B,那么我们输出。大写的B。是吧,其他的意思推。其他的意思类推,如果它是小写的C。我们就输出大写的C,这个也没问题,紧接着我们再来看,如果它是小写的D字母,我们就输出大写的D。
04:07
如果它是小写的E,我们就输出什么呀,大写的E。是吧,然后呢,最后如果这些都不是咱们怎么办呢?Default一下,按照他的要求嘛,Default诶对了,同学们注意题我这边都少写了一个冒号。如果少写冒号的话,造成是要出错的。这里往这边挪一下吧,好吧,Default,如果是default,我们就输出一句话。Print就是other。按照他的要求输出一个R字母。可以了。这题代码呢,我这边稍微的挪一下。对吧,整体代码录一下。他这有整理代码的格式啊,这里呢,它有整理代码,看到没有。这有对代码格式的整理。
05:00
看一下在这儿有没有。查看。查看。这里怎么没有呢,格式化一下。好看一下这里啊,应该有一个,我看看格式化。格式化。切换作死对不对。格式化,诶,那待会再找一下啊,待会再找一下,我们来执行一下这段代码,看看能否成功。来,朋友们,我们看看能否能否执行成功跑一个。那这个代码不在这了。我们切换一下路径CAD点点上一节对吧,然后呢,切换到ex ec。诶,不是这里CAD在上一级。CD到ex ec这个目录下面,我们刚才写的是EXE04是吧,然后呢,我们让一下刚才写的main点够,它会让我们输一个字符。
06:03
我们输一个小写的A,输入大写的A,再来。我们输入一个小写的B。输入大写的B,以此类推,再来,我输一个。没有的字母,就是它这边没有匹配到other代表喜欢第一个题我们就评讲到这里。很简单。我把这段核心的代码呢给同学们放到笔记里面去。这个题OK了。紧接着呢,我们来看第二个题的完成情况。我这挪一下,他第二个题要求我们干什么呢?我们看一下啊,同学们注意听第二个题呢,说学生成绩,根据学生成绩来输出对应的情况,如果对学生成绩大于60分的输出合格,低于60分的输出不合格,输入的成绩不能大于100分。啊,就是最多100分,不能大于100分,好,我们把这个题呢,给大家做一个评价。
07:00
跟上老师的思路。好把上面呢,我们先做一个注释,好吧,先做一个注释,不要让上面的代码影响到我们后面程序的运行。走一个。嗯。走吧,根据实际情况来走一个,首先呢,我们来输入接收一个成绩,接收成绩的话很简单,来咱们输一个就是score。对吧,来个float。FLOAT64。可能是一个小数,对不对,然后呢,我们请他输入。请输入一个成绩。请输入成绩对不对,好输入成绩过后呢,我们接收一下看。这就L简单一点。Scott。好,收到一个成绩过后呢,我们这样来判断Switch。S wi,问题来了,S这时呢,我想简单一点,你看我这样做行不行啊,我用这么一个方法。
08:01
就是我我不用那个判断,当然你其实也可以这样写了case,然后下面判断一下,我这里就这样做in,你看我有score。除以score,我除以一个60。除以一个60过后呢,我对它起一个整。大家看我取整。如果。取完整过后,大家想一想,如果你整个是60分以上,那么整个取整就应该是等于一,如果你是,就是如果你的成绩大于等于60,肯定是,肯定是整个取整过后是等于一的,如果你小于60的话呢,取整过后就应该是零。能理解吗?好,那这里面就简单了,我就这样写K1,如果它K等于一,我输出一句话就说及格了。对不对,是及格了吧,那如果它等于零呢?通过我取证过后case。如果它等于零,我们就说不及格。
09:01
注意这帮书成中文的了,那就是不及格。我把这段代码也写到这里,就不及格。没问题吧,其他情况我们就说成绩输入有误。Default。DEFLT。Dt default什么呢?ft.print好,输入有误,输入有误完事。那我们来跑一跑这个代码吧,我们来跑跑这段代码,看看能不能跑起来走。他会让我输入成绩,我输一个90分及格了。好,我来输一个小于60分的成绩,比如说我输了59分不及格,好,我再输一个成绩特别大的,范围比较大的啊,不落在零和一的,比如说我输了一个900,输有误,完事,好同学们这一段代码的成,这个案例的评奖呢,我们就介绍到这里。我把代码给同学们放到笔记里面去。
10:00
这是第二个题的评奖是吧,第二个题目评奖。同样把它放小一点,第三个题来了,第三个就是说根据用户指定的月份,打印该月份所对应的季节,比如说345为春季,678为夏季,90、11为秋季,其他情况为冬季。好我们来看看这个时候应该怎么写比较合理。同样,我们把代码的需求先放在我们的。这个Vs code里边去。好,把代码稍微的整理一下。那这里呢,同学们,我把这个注释一把,能理解,我要注释了,注释过后我们来开始玩一把啊来吧,首先呢,我们说接收一个月份month month BAT一下对不对,因为月份呢,咱们不会特别的大,然后我来输出,请他输出输入输入一个值。把这去掉一下,快点请输入月份。
11:02
月份好,这时我们接收他。Mom mom,然后SWITCH1句。Switch来了啊,Month,对不对,比较简单,Month on,然后呢,Case如果是三。是。五因为我可以就这三个同时匹配嘛,啊,就说三或或者是或者是五,在这个情况下呢,我们就输出一句话。什么呢?Spring is print。PSPR。Int,好。我们就说spring好整理一下。对不对,这是一个,然后呢,我们其他情况其实很像,就以此类推了,老师让粘贴一下,然后就是六月。七月。八月是吧,这方是summer。Sum summer,再来一个吧,再来。
12:02
还有一个呢,就是我们的秋季。九月份。十月份。11月份对不对,这是autumn。A,再来最后一个是winter。Winter就是其他月份,其实这个时候你可以用default了,都不用这样写了,因为范围都在这里面了,但是为了防止这个家伙输的月份呢,不在这个范围里面是吧,我们最好还是给他匹配一下,比如说12。一位。二月,假设他说13月份,你你你写个default就不对了,明白吧,叫winter。写完最后就是如果他的月份都不在这里面去怎么办呢?我们就说你的输入有误。对吧,我们输入一个。好。输也不。错误啊,输入。有误,完事,那同学们,我们来跑一跑吧,看看代码能不能按照我们想象这样跑起来支一把。
13:01
走。他会让我输入一个月份,我输个一月,当然是冬天再来。再来我输一个,八月份夏天我再输一个。是吧,我再输一个三月份。十秋天啊,春天最后一个,我再输一个,不在整个这个范围里边的一个数,我们看是什么样呢?比如说我输了一个89,输入有误。同学们,那关于这个题的评讲呢,我们就说到这儿,大家看这里我们用到勾浪里面的把多个表达式写在同一个case这个地方的特性。很轻松就完成了。我把代码呢给同学们放到笔记里面去。同学们,便于复习。哦了。好。那么最后一个第四个题呢,同学们我就不去不去做了,同学们自己把这个完成好不好。最后一点。
14:00
所有讲Switch分支结构的老师呢,都会提一下Switch和if的比较,因为Switch和if确实是非常相似,其实甚至我可以这么讲,在勾浪里面,Switch和if的区别其实已经比较小了。为什么这么讲?因为。因为大家也看到在前面讲细节的第七个细节,大家还有印象吗?第七个细节,我在这儿讲过。你看Switch后边呢,它其实本身就可以当if else来使用了,你看这里它直接什么条件都不要,甚至它在里面也可以做范围的判断。因此我们说goon里面的Switch和。和if呢,其实区别已经不大了,但是呢,如果我们的面试官问到Switch和if的比较呢,同学们也可以简单的聊一下。我这样总结了两句话啊,如果判断的具体数字不多。而且符合是整数、浮点数、字符、字符串这几种基本数据类型,建议使用Switch,因为简洁高效,怎么意思呢?比如说我们去判断这个是,比如说打个比方我们判断。
15:08
就像刚才说的,就只有春夏秋冬就这么几个季节。我们。它的范围就是有限的,就具体的几个值不多,这个时候用Switch还是比较高效的。比较高效的。比如说你写个坦克大战,坦克大战的运动方向就是向下左右,诶你可以用这种按键,比如说它向上的光标就是向上走,那因为它这个。方向就四个嘛,所以这次呢用Switch比较高效,就说具体再说一遍,就是说判断是具体的数值,而且不太多的情况下呢,我们可以用Switch。其他情况,如果是对一个区间的判断。和结果为布尔值类型的判断呢,我们建议用if,因为if的使用范围还是要比Switch要广泛一点,比如说我们涉及到一个范围的判断,还是建议用if,因为它更灵活更方便,因为他就是做这个事的。
16:02
所以最后我们总结一句话,什么话呢?具体数值的判断。而且是有限几个数字,我们用Switch,如果是对于区间的判断,或者结果是一个布尔值类型的判断呢,我们建议用if再说一遍,看到没有,说白了就是具体的几个词用Switch词,区间判断用。If这样呢,会比较清楚一点,好的,那关于Switch和if的比较呢,我们就讲到这个位置,讲到这里。我把。我把这个呢给同学们。放到笔记里面去来了。顺和if的一个比较。我给他来一个标题三对吧,来个标题三,刚才老师总结了,他们大概呢,就是什么时候用。用顺什么时候用if啊,总结几句话总结了。总结。总结了什么情况下。
17:00
下使用Switch。啊wi什么情况下,什么情况下使用if对吧,那其实这两句话还是比较比较管用的,就是一般的这个面试官呢,只要听到你这么说,也就知道你明白了就行了,就说具体的数字不多的情况下。咱们用。Switch。对不对,如果说对于是区间的一个判断,比如说成绩,打个比方,刚才判断判断那个三种情况,四种情况是优秀还是优良,还是及格,其实用if更这种判断更合理一点,因为它是一个区间的判断,还有呢,就是一个布尔值,比如说我判断。打个比方,我判断他是一个男的还是个女的。对不对,或者是判断我们的连接是不是已经拿到了,比如说我判断if,我们有一个数据库的连接得到没有,它返回一个布尔值,这样情况下呢,我们也可以考虑使用一一句。
18:01
同相对来说呢,If的使用范围怎么样?还是比Switch要广泛一点,OK,好,关于Switch if的比较,我们就说到这,最后呢,到这里啊,同学们,我们就把Switch全部讲完了。大家看看你掌握了多少,注意啊,一定要把这个练习多写几遍,如果还没有理解清楚的同学呢,把流程图自己独立的画一遍,建议大家不看老师的笔记,不看老师视频,自己画一遍,然后把题自己独立的写一遍,应该说问题不大,我把细节都给大家,应该是讲到位的,你只要把老师细节都掌握了,应该说在开发中。Switch的语法使用就够了。
我来说两句