00:00
我们接着看多分支的其他的案例。多分是其他案例,我们再来看一个案例啊,大家先看这一段代码。你们看这一段代码会输入什么内容,各位看这里啊。我们一起来走,说有一段代码呢,B是一个布尔类型,等于什么呀?等于true,这个没没有任何问题,他说B等不等于false。显然B等于处处不等于false,说这个条件怎么样不成立,不成立的话就不会执行这里面的语句,对不对?那么他又说LCB。B这个时候是不会错啊,所以说第二个条件就成立,因此呢,同学们输出B没问题,OK的,那同学们想想后面这些还要不要继续执行。不执行了。因此这个答案其实很简单,就是输出一个B。没问题吧,所以说这个答案肯定输出B,这个是输出,结果输出。
01:04
输出结果是B,这个没问题,但是呢,大家看到我这有一段红色的字,他说如果写成B等于false。请问。这个能不能编译通过。说如果写成B等于false,然后问你这个能不能就是这句话啊,同学们看,把这句话改成这个这句话。他说能不能编一个。能不能编译通过?大家想一想,能不能编译通过?如果你学过别的编程语言,比如你学过Java,或者或者do net,或者C,或者C加加,我可以告诉大家,你们肯定认为这个编译能通过,对吧?那相当于就是把这个B,把这个false付给B,那整个值不是还是等于false吗?如果这个等于false,这个等于真。那么这个B等于false的话,大家可能会想,诶B一旦等于false,这个就为false不成立,而这个取反呢,会成立,会输出一个C,对吧,大部分同学会这么去想。
02:07
但是非常遗憾,在勾浪里面,如果你这样写它是不成立的,也就是说在勾浪里面,If里面,这里面条件必须是个条件表达式,而不能是一个复制语句。明白意思吗?好,那么我们可以来把这段代码放到我们笔记里面来做一个测试,看看到底会是不是按老师说的这样子的啊,来吧,同学们看。我还是把这个代码放到这里了。好放在这里呢,我把代码稍微整理整理啊整理一下。诶整理过来这个地方应该我保存一下。保存一下,我们看看这边会不会有问题啊哦,这么大大量的这个红色字体,大家不要着急啊,这个红色你看它提示的信息是跟character跟这个字符有关系,这说明我们从PPT粘过来的时候呢,带的有特殊字符怎么办?非常的简单,把它顶头顶一下。
03:04
把这些清特殊字符清掉就可以了啊,这个也不是什么可怕的事,就清一下。因为它这个粘过来的时候呢,它会把格式一粘过来,就比较会会带一些不可见的一些乱七八糟的字符,所以说我把它清掉就可以了。来吧。好在清掉再保存一下,这个时候红色字体呢就没有了。对吧,红色这里没有,你看这个地方提示信息,它说B等于false used as value,有的,他说你这样不能把它当成一个复制语句使用,如果你改成这个是可以的。这个就是一一个所谓的条件表达式,它这没有错。你看啊,根据刚才老师的分析。根据刚才老师的分析,如果B等于处,呃,B负了一个处,然B等不等于方不成立,这个不成立的话,整个这个为甲,为甲的话,进到这里面这个条件成立,因此呢,这地方会输出一个B,这个是OK的,好,我们看看默认情况下是不是输出B啊,我们看看来执行一把。
04:09
好,我们看看地方是不是输出B,我输一个90,你看同学们看输出的是B。最后是不是输出一个B啊,说明刚才分析是没有问题的,然后呢,根据刚才他提的要求,如果我们把这个改成这个呢。编译不能通过。错了。这一点特别要小心啊,这种写法在很多其他语言里面是可以,但是到了go浪里面,他不允许这种写法,我们再说一遍,高浪语言的设计者,他的初衷就是说我们代码尽量不要有太多的这种什么呢?各种写法或者说代码最好不要有太多的歧义,你是什么就是什么,不要搞一个说,把一个币付给他,然后你又怎么样,他不,他不支持有写法,所以这种写法是错误的,能理解哈,好,我把这个答案先给同学们整理一下。
05:00
好,我把这块练习的课堂练习啊,就是多分制的。多分支的课堂练习好,刚才呢,老师布置了一个作业对不对,这个题,这个题结果是B,然后呢,把这地方整理到这里来,我直接把这块粘过来啊,同学们说一下。如果。如果写成B,能编译通过吗?答案是不能通过。编译错误。编译错误,为什么错误呢?因为在勾勒里面,它不允许把一个副词语句放在我们的这个条件表达式这个位置,能理解。啊,说不能在衣服后面带什么不能。这个if的这个条件表达式不能是什么呢?复制语。就这么简单啊,就这么简单,好,我把这个代码呢给同学们放在我们的笔里面,大家看能不能理解。
06:02
应该还是可以理解吧,也不是很难,对不对,也不是很难,但是呢,就是如果你学过别的编程语言,一定要小心一点啊,就是别的编程语言这种写,这种写法它是对的,但是到了这儿它就是错的了,能理解哈,好,我把这个还改回刚才的写法。结果是不对的啊,不对,好,注意看这个,我已把它写清楚了。那我把这个练习题呢,先给同学们放到我们的笔记中去。一定要注意这这个使用陷阱。面试官经常会考到你的,好不好?练习一吧。这是我们的课堂演习,好,紧接着我们继续来做练习。紧接着我们乘胜追击,来继续做练习,下面这个练习呢,是一个编程题,他说,啊。求AX2的二次方加上什么什么的一个方根,其实就是求方程的根,那么他这说了ABC分别为函数的参数。如果B平方。
07:03
减去4AC大于零有两个解。哪两个解呢?它下面提示了第二个呢?如果B平方减去四,C等于零,只有一个解,如果B平方减四,AC小于轴五解,其实这就是我们初中学过的那种方程的根的求法,还记得吧?当然这个其实并不重要,你记不得也无所谓。关键是我们要把程序实现了。它的其实是X1,第一个值是这样求出来的,第二个值是这样子,它给了一个数学公式,也也就是说数学公式已经给你了,然后呢,它还提示在勾浪里面有个叫SQRT的这个方法可以求什么,求平方根。可以求平方根。啊,平方根大家还知道平方根哈,平方根就是开方嘛,说白了就是开方啊,然后这时候我们需要引入一个ma包,这个ma包里面有个方法叫SQRT啊,Ma包里面有个SQRT,这个方法呢,可以帮我们求平方根,它给了一个测试数据,三一百六,好吧,我们就按照这一个要求,我们来开始编写程序。
08:13
好,这是我们的又一个案例。案例二。案例三吧,案例三好,先把案例三的邀请,这个需求呢,我们先把它放到笔记里面来啊,待会呢,我们把代码也放过来。这是我们演示的案例三。对不对,然后呢,我们把这个代码的这个对应的代码给大家写一下。同学们跟着老师失落。好,那为了比较方便呢,我先把这个这个要求放在我们的代码里面去,我就放到这一个地方哈,应应该也没啥问题。好的,同学们看。我把它整个注释一下。我把它整个注释一下。好,往这儿挪一挪。
09:01
那根据老师的思路开始开始写代码了,首先你来分析一下,分析一下这个思路,哎,我们分析第一个思路,首先我们看到ABC3个变量肯定要定义下来吧,肯定是小数AB。ABC。ABC。Abe。BC43个。三个float吧,六四。我们就算成64没问题吧,第二个呢,这个地方大家看到呃,它会呃有一个方根是吧,所以说要使用到。使用到。使用到给出的给出的数学公式。数学数学公式这个跑不了,这个公式就是他这给的这个公式,看到了求这两个数的,求这两个方根的这个这个数学方法,第三个呢,同学们分析是不是我们这个地方还要有if语句判断啊,因为他这是如果怎么怎么样怎么怎么样,对吧,肯定是一个什么。
10:06
什么条件啊,应该是多分支。使用到多分支对吧,多分支第四一个是不是要使用到mass的一个方法。Mats这个包包里面有个SQRT这个方法。那么这个方法到底是什么样子,干什么的?我们来查一查。同学们要适当的查手册哟,你这个手册不会查,以后就很麻烦的,所以说老师带大家来再来学一下这个手册,打开我们的百度搜勾。官方文档飞车点进去。其实这个手册我们已经用过好几遍了。打开我们的麦包。M,其实你也猜的出来,跟数学相关的一定是MAS包里面对不对,所以说我找到ma。点进去一看,哦,果然看到这有很多的函数列表啊,函数列表其中有一个SQRT,点进去看一下。
11:04
SQRT在哪里?是不是这一看哦,这个方法是返回X的二次方根。很简单,你看就传入一个小数,它会返回它的二次方根,要的就是它没问题,现在呢,我们又有了这些,有了这些分析过后,下面代码就比较轻松了,来代码。坐太晚了啊。走代码非常的简单嘛,首先先定义三个变量。A。Float。六四。对吧,六四其实我们可以一次性的给。还记不记得我们以前是三个变量同时给啊是吧,我这块就算了啊,我就一步步的给算了,呃,第一个他说测试函数是我看他给给的数据是什么呀,三一百和六,那就用他这个吧,好吧三。点零吧,给他一个点零,因为有可能会有小数b float。
12:04
64。啊,等于100.0没问题吧,VR c float64,然后呢,三。好就可以了,三个数给给清楚了。然后呢,我们看看这里面呢,它是通过BB的平方减去四乘以二来判断,所以说我现在要定一个值VRM,我这样写啊M。M等于多少呢?就是A的平方啊,B的平方,B乘以B减去四乘以A再乘以C,是不是这个值就是就是我们所说的这个值啊。因为这个地方没办法,那个BB平方,它这个就写成B2了,大这块我就不再多说好不好啊,应该这个主要是他这个这方没办法,那个B小数那个小点它没法没办法没办法在这显示了,好,那我就开始判断了,多分支来了啊多分支。
13:05
多分之判断开始了,开始了,注意听好if,如果M。如果M大于零。如果大于零,就会有两个值,对不对?有两个值,那我就第一个X1。为什么呢?X1这个值等于这个平方,那就是括起来负B。复B加上。这个,那这个呢,刚才我们讲了它是ma里面的SQRT。SQQRT,注意这个S是大写的,然后把谁呀,把这个放进去,B平方减4AC是不是就是M呀?放一个M进去是不是就可以了,然后再除以2A2乘以。A,是不是就可以了?是这样子的吧,我们来看一下这边是不是这样写的,2A没问题,好,第一个就求出来了。第二个就是把这个加变成减好两个字求出来我们输出。
14:06
我们格式化输出啊,Print f。然后写出X1等于。X2。等于一个值,然后呢,我们把这个输出到这里来,X。1X2。对吧,X1X2就写完了,那么它还有一个可能性,就是如果M它什么呢?它不大于零,它等于零。是不是这样写的呀,如果它等于零的话,根据他说只有一个解,一个解就是第一个解,那就简单。把这上面拷贝下来,然后呢,保留一个值。对了,刚才老师这写错了啊,这边写成二。是不是就完事了?好,最后一个条件就是无解。如果这如果它不大于零,又不等于零,只能小于零呢?那小于零的话就无解。就提示他无解。
15:02
完事。对吧,按照他的要求就全部写完了,但是呢,这样一写,我们一保存,他应该会报错,大家知道报什么错吗。再看这里。他说B已经重复定义了,那就意味着我上面是不是用过B啊哦,说明我已经用过B了,那我先暂时的将这一段代码怎么样。注释掉。好,最后他还会报错,大家知道报什么错,看这里。Must be。啊,对不起啊,同学们看是不是老师又写,不小心写错了,少了一个什么if,这样写了还有错吗?还有错,哪里错了呀?他说X1没有定义,这是为什么?大家想一想,是不是应该用个冒号啊?是不是下面是不是也是一样的呀,好,还有错没有。我们一定把它排出来。大家看来了,他说没有定义mass,是不是mass是一个包啊,你这引包了没有,你根本就没有引包,怎么能用呢?所以说还要引入mass这个包再来保存,还有错吗?
16:05
OK,好,此时此刻大家看这里,他还有他说没有定义S,诶,我写错了SQRT啊,怎么会写成这个东西SQT。SQRT啊好。再来保存。好,大家看这里它有个X2这么定义,那当然我这提问因为只有一个值嘛,所以说这段代码这个就去掉了保存。还有错没有?好,这里面还有最后一个错啊,这个地方因为它没有格式化,所以说这地方直接写LN就可以了,因为你没有格式化,没有后面后面没有那个变量吗。好,代码就写完了,这个时候就彻底写写OK了,那同学们我们来运行一下这段代码,看看能不能跑起来,就看看能不能正确的运行好不好,那为了不要让上面这些代码影响我们呢,我先暂时的将上面的这些代码怎么样,先注销一下好不好。
17:01
注销一下啊,从这这是一个题。把它先注销了。下面代码呢就不受影响了,来跑一个。运行。看到吗?他说有两个值,看到没有X1和X22个值求出来了。这个应该是没有错的,没有错。好,那就说这个时候他刚好这个M算出来M是大于零的对不对,那我在适当的在。调一个数,看看有没有变化。啊,还是一样,那得把哪个数调大一点啊看看,因为它是B的平方减去这个嘛,所以说你要让它小于零的话,那得把B这个值怎么样要调小。要把调小,把B这个值调小,把C这个值调大,是不是我把这个调大,把B这个值调小一点就行了,调成一个一,肯定肯定这个B平方就不大于它了,所以说这个时候它会提示一个无解,因为等于零还不太好,等于零我们也可以再设计一个。
18:07
这个时候应该是无解才对。看到没有,是不是无解啊,无解我们再找一个等于零的,等于零的话就是B平方减去4AC。4AC,比如我的B平方,我们来个四。啊,比如那个四,四乘以四等于十六十六,呃,我把这个A。呃,四乘以,我把这个A写成。二把这个C也写成二,他想想如果这样的话,是不是刚好它等于零呢?B的平方是呃,四乘以四等于16,这个时候是四乘以二再乘以二也等于等于这个呃等于16刚好等于零,那么这个时候呢,它会。求出一个一个解来走一个。这个是应该只有一个解啊。我发现的确只有一个解负四欧了,好代码我们就写完了,看看这是这个代码,大家看看能不能理解啊,稍微有一点点复杂,但是还可以了,也不是特别复杂,对不对?好,我把这个解这个代码呢,给同学们放到笔记里面,大家好好的理解一下好不好,包括我的这个分析的思路,我都把它放到笔记中。
19:18
那同学们呢,听完老师讲过后,你你应该做什么事情呢?你应该把把视频停一下,然后自己去。照着老师这个思路,你完成一下,最好不要看老师的代码对不对,独立完成。好,这是我们的案例三,又讲完了,我们再写一个,再来一个多分子的案例题,加上一个音像巩固一下。看第三个题,第三个题是这样子的啊,大家都知道男大当婚而女大当嫁,那么呃,女方家长要求嫁女儿呢,当然有一定条件了,比如说要高。富帅。那高呢,要1180。帅呢?呃,富要1000万以上,帅是必须必须必须长得很帅,好条件都从控制台输入要求啊。
20:08
如果三个条件同时满足,我一定嫁给他,如果三个条件有一个条件为真,嫁给他吧,比上不不足,比下有余,如果三个条件一个都不满足,则不嫁,对吧?滚啊,不嫁给他。那现在呢,我们就来按照这个思路想一想,题怎么做,这是我们人类的语言,你要把它翻译成机器语言,也就是说翻译成代码,你怎么做呢?来跟邵老师说,我们把案例四也给同学们完成一把。来吧,要多练习,知道吧,尤其是初学者啊,来看看老师怎么来写这段代码。呃,还是直接来走代码。老师能把这个要求,老师先把这个要求放到笔里面来。啊,他这边有些变量已经给我们设计好了。来吧,抓你。张贴。
21:00
那么为了方便一点呢,我直接先把它。这个来一个注释。好,开始写代码了啊,同学们,来走,我们还是老规矩,应该怎么样啊?先分析思路,是不是应该先分析思路啊同学们。这个思路呢,我我来分析这么几点,第一个应该有三个变量。应该。应该设计三个变量。哪三个变量啊,高富帅吗?这是不是有了呀,诶他就有了,而且呢,要从控制台输入。啊,而且需要从com终端。终端输入。那这个时候要用到format里面的scan。这个LN没问题吧,第三步。这里面呢,它有。呃,如何条件怎么样,如果条件怎么样,如果条件又怎么样,所以说他应要要使用到什么呀,使用。多分之对不对,就是我们说的if s,然后是什么呀,S。
22:06
是不是多分支啊。那有了这三个分析过后,我想应该难度就不大了吧?来吧,先把这三个变量推过来,写过来。第一个高。第二个。有钱。第三个是否帅帅呢,他。这里指定是布尔,我就用布尔啊,布尔就说,如果帅就为真,如果不帅就为假,就完了。我们就不给他打分了好不好?好,现在呢,我们用来用一句话来提示他print。我们就说请输入高身高,请输入身高。对吧,情书身高怎么写,怎么接收一下scan?F8,它输入的身高给放进去。I hate。那么这个呢,我们写的是厘米,按厘米算。
23:04
厘米对不对?好,其他的以此类推了,同学们是不是我就粘贴复制一份,第二个呢?请输入什么?请输入财富。财富就是他有多少钱,我们按千万来算,就是他输的就千万了。意思意思。好,输入的时候呢,我们用money来去收对不对,好下面呢,他还请输入什么呀,请输入它的颜值是否算。是否帅?好,那么就是一个真假就行了,对吧,真或者假。真假或者true或者false。True或者是false。就可以,那这时候呢,我们来接收一下叫做handsome。Henderson。没问题吧,现在有了这三个条件过后呢,来紧接着该是不是多分支来进行判断了呀,那肯定是多分支嘛,那就是if什么呀,咱们先说第一个条件,是三个条件同时满足,我应价给他,那就是都都满足吗?那就是首先。
24:15
身高。大于180。大于180按厘米算的对不对?他说等不等于呀。有没有,有没有等于啊,他说三个条件,一米八以上。那如果是一米八以上的话,就大于一米八了,那就应该大于大,就是这个条件满足。并且money。对吧,也大于1.0,因为它是按千万算的,大于1.0就可以,如果还满足什么呢?Handsome。等于处,就是他长得很帅是吧?T1处,其实这个时候可以不要这一个等号了。而且。
25:01
呃,这个等号这样写,按道按道理应该是标准写法,等于等等啊,不,还不能写一个等一个等,就是负值,又错了,这样写才行,但是呢,因为它本身handsome就是一个布尔子,因此呢,这个条件其实是可以不要再嫁的,画蛇添足是不是好?当这三个条件同时满足,我们说出一句话,我一定嫁给他。是吧,这个是优质品呢,得赶紧,这是一个第二个。Else。If,第二个条件来了,第二个呢,就是说他们这三个条件里面只要有一个满足也可以,那就应该是把我们的逻辑换成逻辑,什么逻辑或就只要有一个条件就满足就行了吗?也不要强求,就只要有一个条件满足,OK。科学家,那就是把这句话改成什么呢?比上不足。笔下有余,是不是总有一个优势?那如果说诶这个三个一个都不满足,就是else,那就怎么样不加。
26:05
那就说他一个条件都不满足,那就不加了。对吧,不讲完事,哼,不嫁了。是不是?你看这段代码是不是也挺简单的呀?来,同学们,我们跑一个。我把上面这个先怎么样,先注释一下好不好。先注释一下,因为刚才呢,我们已经把代码放在笔记里面了。嗯,看这里还有一点错误,我们看哪里有错误啊,Handsome。Handsome。Height。看在哪里啊,是看F。他说又是这个哦。Int啊,他说是一个时尊int,我们看这个地方,他报告了一个这样的错误是吧。报告一个这样的错误,我传的就是这个指针呢。它这需要一个指针,As太准。
27:02
是看F啊,对不起啊,对方怎么能写成这个呢,是不是应该是是看LN呢,是不是。是不是这样这样才对啊,函数用错了,是不是函数用错了,保存一下就O了。还有哪地方有错误,看一下。上面有错误吗?上面有一个为什么呀,是不是max这个包没有用到了呀,因为你ma是先前是用来做这个平方根的嘛,现在没有用了怎么办?先暂时的用一个杠忽略一下就行了。是不是我们讲过这个知识点呀,忽略了吗?后边再用好代码就写完了,来,同学们,我们跑起来执行走人。好,这时候呢,它会提示我先输入身高。好,来,我们先说个190。财富2000万。好不好?他帅吗?处好,我一定嫁给他,没问题,因为他都满足,我们再来满足,有一个的三个条件不是同时满足啊,比如身高190。
28:06
钱只有0.2。然后呢,是否帅不帅。Java比上不足,比下有余好,我们再来一个三个条件都不满足的。三个条件都不满足。第一个身高150140,很矮,前只有0.1。瘦算不算?都不满足不加好吧,好,同学们看我们的代码呢,明显感觉到它是在进行判断了,是不是它有三个分支条件的判断,那同学们看这段代码,我们就分析完了。那我把这一段代码的分析以及代码的实现呢,放在笔记里面去加深同学们的印象。好的,把这段放在我们的笔记中去。包括分析我们都写完了啊。好了,同学们,我们回顾一下我们多分支这块呢,老师又讲了三个练习题,哪三个第一个题。
29:04
第一个是不是讲了一讲了一段代码呀,这段代码的重点和核心要求,大家必须要记住在if里边,后面的条件表达式不能是一个副词语句,对不对?第二个案例三这帮。教大家怎么去把我们的程序代码和一个数学公式整合起来,以及怎么去用ma包里面的相关的数学函数。那当时说了老师我只用了一个平方根,那其实他还有很多其他的吗?你需要的话还可以来找呀,你不能说我韩老师讲了一个,只讲了一个这个东西平方根,我其他都不懂。后面呢,学到别的函数,你自己也可以来找一找,比如像flower啊,对不对,ABS就求绝对值啊,求最大值,最小值不都可以用吗?对不对,说展展开你的一个想象,然后呢,第四一个呢,就是教大家去用了一个多分支。
30:02
多分支就是怎么样去用的,这写的也比较清楚,好了,同学们关于多分支的案例呢,我们就给大家介绍这么多,那后边我们在做项目的时候呢,像多分支的应用呢,还会更加的灵活,到时候老师还会在需要的时候还会再给大家加强一下,好吧,但是学到这儿呢,其实我们多分支大部分的内容就已经。涉及到了。好的,那关于这块我们先说到这儿。
我来说两句