00:00
接下来我们继续啊,刚刚说了一个if else,那现在我们已经可以有两个选择了,为true的时候执行第一个,为false执行第二个,但是很显然两个选择其实也不能完全满足我们的需要,有的时候往往我们需要都要选择,对吧?诶满足情况A的情,满足情况B的情况,满足情况C的情况,我们是不是都需要有不同的处理方式啊,哎,不同的处理方式,所以我们需要更多的这种分支结构啊,更多的分支结构,那所以我们还有一种语句啊,我们还是新创建一个吧,哎,保存一下,我们叫做一个04IF,哎,L if,还有一个L,那也就是说现在这个if l if else的结构比我们之前这个if else又多了一层啊,多了一层,那我们直接来说一下啊,叫做一个啊,没写扩展名,还是给它重新命名一下,表一个PY。啊,重新打开一下。
01:03
这里边我们来说一下,直接还是叫做一个if l if,还有一个else啊,语句说一下它,那我们还是先说一下语法,语法其实跟之前也一样,我们再回顾一下,If后边是一个条件表达式,然后冒号后边紧跟着一个代码块,代码块然后再往下是我们的一个这个else,哎,L if啊后边还是条件表达式,然后这是一个冒号,哎,冒号,然后后边可以紧接着跟的一个代码块,然后不一样了,在后边我们可以有多个,可以有多个啊,可以有多个这个l if啊l if我就省就写这写三个意思意思啊,然后再来,最后我们可以来一个这个else,诶冒号,我们这来一个代码块,那它跟这个if else的区别就是明显条件表达式要多了啊,填码号多了,还是来说一下它的一个执行流程。
02:04
啊,执行流程我们来说一下if l if,还有一个这个else,哎,语句在执行时,哎,在执行时它为什么呢?哎会自上向下,自上向下依次对我们这个条件表达式进行求值判断啊自上向下什么意思呀,从第一个开始到第二个第三个自上下依次对条件表达式进行判断,如果表达式的这个结果为处啊为true,则执行我们当前代码块,啊则执行当前代码块,然后语句结束啊然后语结束,如果表达式的这个结果为false,为false,诶则继续哎向下判断,啊则继续向下判断,直到哎找到我们。
03:04
跟这个处为止什么意思?看这儿了,咱们拿它举例子,首先我们有条品拔式,且有很多,它会顺序去判断,先判断第一个,它如果为true,就执行这个呗,代码块执行完了全都结束啊,就退出了,如果为for,继续判断下一个啊,下一个它如果为true,就执行它,如果不为false,继续判断,也就是它会自上向下一个一个判断,如果为true,我就执行,如果为false,我就继续向下找,直到找到处为止。诶那我们说如果都是false呢?哎,如果所有的表达式都是false,诶,则执行我们这个L4后的代码块啊,L代码块,那就是这么一个东西,其实非常好理解,对吧?来我们来看一下,直接写一个,我们写一个什么呢?我们这样啊,我还是来一个age age,我来等于一个70啊,等于70,还是判断年龄,刚才我们就判断一个。
04:04
呃,这个成没成年对吧?给我们写的复杂点,我直接来一个if age大于,诶大于这个200,哎,诶就大于200,就说当你的年龄大于200岁的时候,我来打印一个是吧,我来打印一个大于,大于200岁了,我们应该说什么呢?哎,说一个这个,哎活着,哎可真没劲呢,哎真没劲呢是吧?哎都200岁了,活不活,当然咱们也希望长寿是吧,当是真的活到200岁了,可能就要想想要有一些事情要做对吧?好,那下边再来一个接之前我们是不是直接写else啊,哎,这个时候我们可以互写else,可以写一个l if l if跟L的区别就是它后边可以加条件啊,后边可以跟着这个条件,那在这儿呢,我们再来一个if大于这个大于80啊,大于80,大于80岁的情况,或者我们这样吧,大于100啊大一百,比如说超过100岁了,哎,我们print,诶这写什么呀,哎你也是。
05:04
哎,老大不小了,哎,岁数挺大的了,对吧,老大不小了,然后再来,我可以接着写l if来一个age,大于一个60 60我们该干嘛了?哎,大于60我们来一个什么呀?哎,来一个这个呃,你已经退休了啊,你已经退休了,但是这里边注意,实际上这写的不太严谨,因为我们大于60,其实大于等于60岁的时候就退休了,对吧?所以这一块我们来加一个等于吧,上面你加也行,这其实加不加都行啊,跟你个需要我呢给它加什么啊,大于等于60,然后下边接着来else if来一个age大于等于30啊30我们print你已经是中年了,诶你已经是中年了,写上,然后再往下再来一个IC if,我们来一个这个大于等于18啊,大于等于18,大于等于18,我们来一个print啊,你呃已经成年了啊,你已经成年了。
06:04
然后再往下,最后来一个else else来一个print,哎你哎还是个小孩,哎,你还是个小孩,哎,是个小孩,诶那这一系这一套我们来看什么意思,首先我们来看,我们这有一个两个,三个,四个五个,一共有五个条件表达式,它会自上向下判断,先判断第一个,先判断第一个来看它成不成立,如果它成立就执行它后边的这个代码块啊,代码块如果它不成立干嘛呢?继续判断,继续判断它成立就行,这个不成立继续。向下判断一个一个判断啊好,那现在我假如说把这个年龄改成二百七二百七,那我现在问你这个条件满不满足,哎满足,那所以我们这一执行出现一个这个冒号又写错了啊60后边这冒号啊,确确实明显不一样,对吧?来改一下这样一执行,哎是不是活着可真没劲的,哎活着可真没劲的啊,所以这里边等于是第一个钱满足了,好,我这改一个改成一个170,一百七是不是第一个不满足,是满足第二个呀,这时候我这一执行是不是你也是老大不小了,哎你也是老大不小了,然后我再改一个70 71执行是不是应该是你已经退休了呀,哎退休了再来一个这个,哎50,哎30,哎30这一执行就是你已经什么了,哎,中年了啊,中年了再来一个20 20就是一个什么呀,哎,成年了啊,我再换一个,换一个十就是什么呀,十是不是哪个都不满足啊,哪个都不满足只能走这个else啊,只能走else。
07:45
是不是你还是个小孩啊,诶,你还是个小孩,就这样一个东西,其实非常简单,它是自上向下依次判断,先判断第一个,第一个不行,再判断第二个,第二个不行再判断第三个,以此类推,哪个条件满足是不是就执行哪个后边那个代码块啊哎,哪个满足就执行哪个后边那个代码块,它是依次去判断的,那这里我们要看一个问题了,我这改一个210,现在age是210,好,我问你了,210A是210,那满不满足大于200。
08:19
哎,满足满不满足大于一百二百一是不是也满足大于100啊,哎,好,满不满足大于等于60,哎,满足,但当你是二百一的时候,实际上我们注意了,这几个条件是不是都满足,诶既大于200,也大于100,也大于60,也大于30,也大于18,所有条件都满足,那为那它的结果是只打印这一个呢?还是每一个都打印?诶我们这一保存这一执行是不是只打印第一个呀?诶只打印第一个,下边的并没有打印,这是为什么呀?哎,因为我们说了,如果表达式结果为处,则执行当前代码块,然后语句结束,说白了它是处了,执行它后边的代码块,后边所有同学看不看了,哎,全都不看了啊,全都不看了,所以注意我们说一下if else if,还有我们这个else。
09:14
哎,中只会有一个代码块会执行,哎,会执行,因为一旦条件成立了,他是不是就直接退出了,哎就直接退出了啊,所以注意你这写作业一堆,只要第一个满足了,后边全都不判断了啊,他都不判断了,这第一个是为了性能,第二个正常逻辑也是应该这样的,第一个检查完了,下边就不能再检查了,再检查我们就乱了啊,就乱了好这个是一个它,所以基于这个特点,我们在写这个代码的时候就要注意了,注意什么?现在我是这么写的啊,假如我掉一个写,你看有没有问题,我写个什么呢?先来一个if age,我先把我把下边条件写上面啊,Age大于等于18,来print一个,我直接粘了啊,你已经成年了,然后再往下l if age大于等于30啊30,这写一个什么呢,你已经。
10:15
你已经中年了,然后再往下啊,我们再写一个,我们简单写了啊LH大于等于60,最后一个啊,最后一个print,哎,一个这个你已经退休了,那退休了我就不写这个L了啊注意else可以省略,在if里可以不写这个if else if else里边else也可以省略啊不写OK,好写完了,那这个时候我们来看效果啊,我这改一个,这有没有问题啊。有没有问题啊,对吧?Age等于18,写上一保存第一个天满足吧,哎,我这一执行你已经成年了,没有任何问题,对吧?没有任何问题,好,改一个age置我来30万,30万,按理来讲是不是应该你已经中年了呀?哎,你已经中年了,我这一保存走一个,哎呀,还是你已经成年了,好了,我再换我来一个这个88 88是吧,八十八一老头了,我这一执行走一个,哎,告诉你,你已经成年了啊,都88岁了,你告诉你已经成年了,老头,这老头这美死了是吧,88刚成年还能好好些年呢啊,有没有问题,有问题,为什么会出现这种情况?
11:27
为什么会出现这种情况,那注意了,现在我们这代码写的就问题非常非常严重,刚才我们说了if else if else里边只会有一个代码块被执行,也就是说有一个满足的,其他的都不执行啊,其他都被执行,那现在来看,我要问你了,第一个条件是H大于等于18,第二个是H大于等于30,第三个是H大于等于60。好,我问你了,如果说这个条件满足了,第二个条件满足了,第一个条件是不是一定满足,肯定的,你都比30大了,是不是肯定大于18了?哎,所以注意,当第二个条件满足时候,一个条件一定满足,同理,当第三个条件满足的时候,第一个条件,第二个条件是不是也一定满足,你比60大了,一定同时也比30跟18大,这是很简单的对吧,很浅显的一个道理,那这个时候就给我们带来了一个问题,也就是说这两个代码块它有没有可能执行,诶就我们这个代码来说,它一辈子都不可能执行,所以这种代码我们有一个名字叫做带的第一。
12:27
Dad带的死的扣的带的扣的死代码,什么叫死代码?这种东西一辈子都不会执行啊,永远一辈子都不会执行,所以这玩意儿写的有没有意义啊,哎,没有意义啊,没有意义,所以你在设计条件的时候一定注意,像这种它的条件没有矛盾,你可以这么写,但是这种他们条件之间是不是发生冲突了,发生矛盾了,所以就导致出现死代码了,死代码一定是我们编程当中需要避免的一个问题啊,需要避免一个问题,那现在这问题我怎么解决呀?诶当然第一种解决方式,你掉个来,先减60,再减30,再减18,对吧,那还有什么办法,哎,我加条件呗,什么加条件呀,你这不仅仅说H大于等于18吗?但是当你大于30的时候,还能不能进这条件了,哎,不能了,所以我这再来一个条件A小于30,就说当你大于等于18,哎,同时小于30的时候,我是不是还只用那个呀?那问题来了,两个条件。
13:27
他们之间什么关系?哎,刚才也说了,同时呢,同时我们应该用的是and啊,当你的age大于等于18,同时你的age小于30的时候,我就打印你已经成年了,这个时候我再写一个38,先写18吧,18满足第一个吧,我这一执行你已经成年了,好,我再换一个,换一个38 38是不是应该满足第二个了,我这一直行,是不是您已经中年了,哎这样就没问题了,但是问题是什么呀,到了这儿不是又不行了,诶到这儿您还得加上,诶这干嘛呀,小于60啊,小于60,这样我这儿来改一个,改一个68,这样一保存,是不是才是你已经退休了,哎你可休,否则是不是就到终点那卡住了,哎,所以注意啊,但是像这种写法比上边这个就要麻烦一些了啊,麻烦一些了,所以你在写这种if语句,尤其是条件比较多的时候,你这个条件一定要设计好,不要出现带着扣子,不要出现死代码,那出现死代码这个程序就是有。
14:27
问题的啊,有问题的好,那这个我们的if语句,我们的条件判断if语句就说了这么多,一共三种语法,一个是if if else,还有一个if else if else,整体来说其实不难,但是这种东西在我们程序里边是用的非常非常非常非常多的啊,那接下来我们有几个练习,你自己尝试做一下啊,一有啊,一共有五个练习,我放到了笔记里啊,Reade里,自己来看一下这五个练习,练习12345啊,练12345都不难,仔细读一下题啊,仔细读一下题,待会儿咱们来一起来做一下啊,一起来做一下,好,我们来听一下。
我来说两句