00:00
好,那么这个基本结构呢,我们就说清楚了啊,那么相对应的几道练习题呢,大家也可以去写一写,熟悉熟悉啊,接下来我们来看另外一个相对来说高级一点内容啊,叫if else的一个嵌套使用。诶,那其实呢,就是这样一个场景程序呢,往下走走走走走,诶突然这块呢,我们不确定呢,叫分叉了啊分叉的话呢,如果我这块分成是两个叉,诶这叫一,这叫else,然后再往下走走走走走,诶这块又得。分叉了啊,那这时候你就再接着写分叉啊,写if else就行,那整体来看的话呢,是在你这个if里边呢,又出现了一个if和else。啊,那么我们把呃,If else里边又嵌套着if else,这种情况就称为呢,叫if else嵌套了。OK啊行,那如果这呢看成是一件衣服的话呢,相当于你穿了两件衣服是吧?诶里边套着穿的行诶那么具体这个直径的特点,咱们通过练习呢去说看这个题CTRLC回过来。今天。啊,If。Health test2。
01:02
哎,这啊,哎,通过这个题目,哎,我们来说明啊,If else的嵌套使用。哎,咱们就直接叫案例吧。好保存一下。好,看这个题啊,这呢上来就提到一个我们不熟悉的一个需求,说从键盘输入三个整数。啊,有点难为我们了是吧?诶键盘输入这个事儿呢,咱们先一会儿再说,哎,专门呢,我们把它当成个知识点呢去给大家讲解,所以这块我们就先忽略啊,键盘输入这个行为,我们就直接呢在代码中给它先写死。声明三个整数NUMBER1 number2 number3,然后对这三个数呢进行排序。实现从小到大输出。啊。
02:00
三个数,咱们前面讲三元运算符的时候呢,光说过取它的最大值。啊,那个需求还简单一点,现在呢,哎,不管最大的出来,最小的出来,整个把他们顺序的都得排好。这个写法不唯一。哎,写法不唯一,哎我呢写一种方式,大家下来呢,你也可以自己呢,试着多写几种方式,多练一练,有可能你写的比我的不好,但是呢,没有关系,关键呢,你得多去动,呃,这个动手去写,多去想。啊,然后你通过对比发现,诶这个好是吧,哎,你以后就选这个啊。好,那这个怎么去比呢?哎,我的想法呢,是这样子的啊,咱们也先拿俩数去比。嗯,NUMBER1和NUMBER2呢,他俩先比,那比完以后呢,肯定一个大一个小嘛。啊,那假设呢,NUMBER1小NUMBER2大假设哈,这是一种情况,那不是这种,那另外一种就是NUMBER2小一大呗。就这两种情况是吧。好,那么如果要是这种情况的话。
03:00
那三往哪放呢?对,那么三呢在哪直接决定了我们这个排序的样子,其实你发现在就三个位置,要么在这儿,要么在这儿,要么在这儿。哎,它也是一样啊,要么比N2小啊,要么是在中间,要么不在这儿嘛。那到底在哪儿,怎么判断呢?诶对,就再比,诶拿着M3你说啊,如果你比这俩中的大的这个还大。那你就在这儿。如果你要,你要比他俩中的小的还小。你就在这儿。否则。就在中间。诶,然后下边这个也同样的道理嘛。哎,这呢是一种思路啊呃,这个是我想的一种思路,哎,其实还有别的思路。啊,这个大家呢,你可以下来呢,再思考思考来这个题目呢,我们就开始来写了啊。
04:00
好,首先啊,NUMBER1。嗯,我把这几个都定义出来,嗯,你要是传统的写呢,那就是老老实实的这样写啊。哎,这样写的,咱不是也讲过。还可以怎么写?Number。比如说30逗号,哎,那么二等于R1逗号。哎,44这样也行是吧。好啊,哎,三个数已经有了,下边我们要判断了啊,我这样写说if啊,如果NUMBER1呢,大于,咱们把等号也归到这吧,大于等于NUMBER2,哎,这是一种场景,哎,除了这种场景,剩下的就是比你小了。这个对应的呢,是NUMBER1呢,相当于小于NUMBER2的啊好,那么在这种情况下,那脑海当中你浮现着这个NUMBER1在这儿呢,NUMBER2呢,在这儿呢,现在呢,还剩三个位置。哎,让他去选。啊,这个我把它稍微的盯一下啊。哎,剩下那三个位置去选,那我们下边就判断NUMBER3,如果比NUMBER1还大。
05:05
还怎么着?看这if number3呢,大于等于一是吧。哎,这呢,这个顺序不就出来了吗?他在这儿。哎,或者的话呢。比这个小的还小,不就在这儿吗?哎,那就是NUMBER3呢,小于等于NUMBER2。哎,那么剩下的情况你就在中间就完了。哎,那这个顺序呢,其实就出来了,哎,我们在这写输出。嗯,这个是在这儿的是吧,西安是NUMBER2吧。这个用个逗号来分割啊,NUMBER1。A number3。这样是吧。好,然后呢,诶这是一种,你要是比小的还小,先是三。再是二。31。
06:01
然后呢,在中间的。嗯,先是二。但是三。31,哎,这就行了。OK是吧?哎,这个呢就完事了啊好,那else的话呢,哎,这就涉及到这个NUMBER1呢比较小,NUMBER2呢比较大,还是有三个位置。一样的道理啊,我们还是把它这个定义一下。好,那我们还照样啊,刚才这个思路,如果呢,NUMBER3呢,大于等于二。哎,比大的还大。啊,Else if number3呢,比小的还小,哎,我把等号呢就都归到这了啊,Else呢,就在中间。随便呢选一个啊,这个呢是比大的还大,就在这儿,所以呢是西安市NUMBER1。二。NUMBER3。好,这比小的呢还小。三。
07:02
这在中间。一。三。诶保存诶这不就搞定了吗。哎,那整个这个情况呢,其实就都包含了。哎,就是我们这样去写。嗯,这样去写好,我们运行一下Java c啊,If else。test2.java。哎,T2,哎,那这时候就出来了,哎,从小到大的顺序。哎,听到大家声音好,这块我来一个拓展啊。哎,那你能实现哎从大到小顺序的排列吗?还列啊是吧,哎,这个呢,大家下来呢,你把这个题改一改。呃,让它从大到小排列试一下。OK啊。啊,同学说对,我把第一个和最后一个我换一下。行不?
08:01
啊,这是二十三十,比如说40,把这俩换一下。啊啊,结果这个把输出这块光倒一下是吧。也行是吧,啊,这个比我那个还省事是吧。啊,行。哎,群众的智慧是无穷的是吧。好,诶这个呢,大家呢,也可以下来写一写啊,或者你就从这个角度出发,你去考虑考虑也行啊,那就多练一练呗。好,那么通过这个题目呢,我们想说的就是这个嵌套啊,其实呢,你会觉得也没说多难是吧,就是你在写这个结构的时候呢,下边就写代码,结果写的时候发现呢,又不确定了,那就该分支就还分支。那如果在这边写的时候又不确定了,就再分支。我们这儿呢,只有两层嵌套。啊,只有两层嵌套,那有的时候可能会有三层嵌套。那实际开发当中呢,呃,基本上就没有见过超过三层的。那超过三层呢,写着写着可能这个就已经有点迷失了,就是吧,一会儿这个elsec到底是跟第二层还是跟第三层的去配呢,就懵了是吧。
09:07
诶这个呢,注意啊,就是如果你写代码你发现呢,呃,越往里边写还想套都套到四层了,那及时呢,停下来重新考虑一下,可能这个还有其他的这种。实现方式啊,把它这个层数呢降下来啊,这块我稍微的提示一下啊,就是从开发经验上来讲。啊,经验上讲啊。这个。呃,没有写过啊,超过啊三层的这个嵌套。啊,这个结构啊。啊,如果要是出现的话呢,就是你自己写的啊,那你要重新的思考一下这个逻辑,把它改一改,改写成了三层以内的。啊,这是这个事儿,哎,那这呢是我们想说的第一个问题啊,然后第二个问题的话呢,诶再强调一个小的细节啊,大家看哈,我们这个if else if和这else包括呢,我们那会儿写的像这样练习都一样啊里边这个执行语句呢,就只有一行。
10:02
啊,就只有一行,那如果你要是只有一行执行语句的话呢,我说呀,这一对大括号呢。是可以省略的。注意我说的前提啊,如果你只有一行执行语句的话,这个大括号是可以省略的,那你要是不止一行执行语句啊,一旦是两行及以上大括号就不能省略。这个大家说一下啊。如果啊,这个if else中的啊,执行语句块是吧,中只有一行执行语句。啊则啊,此执行语句。啊语句啊,所在的啊一对大括号,哎,可以省略,但是。啊,不建议省略。哎,注意啊,但是不建议省略啊,哎,首先呢,省略是不错的,你看我这我就省啊,这个我没省啊,哎,咱们先做一个编译。你看编译运行都能过哈,只要编译能过,说明语法就没有问题哈,哎,关键的就是说不建议上,为啥呢。
11:07
诶,因为有可能我们在写代码的时候呢,刚开始你觉得诶就一行啊,就这样写了,然后写着写着发现哎哟,前面这块好像还有一个事要做,哎,我得定一个变量啊,诶举个例子,我就这块呢,我就。又多了一条执行语句。加了一行是吧,加了一行呢,但是你没有想起来把这个大括号呢,给它补充上。然后进而的话呢。哎,你看我们这块呢,做一个编译。这个过了是吧。这个过的原因呢,其实嗯,这样一说的话呢,这个就稍微有点复杂了哈。这个为啥呢?嗯,这个我写它的话呢,它会我我写到这儿,因为你看这是还有这个大括号这样配的,其实这个呢,你看似我跟他是,呃,是这个else里边,其实这个位置啊,它其实相当于是在这儿的。能体会这个事儿不?它其实相当于是在这儿的。
12:01
哎,我这个语句我看一下啊。咱们这个一大于等于二。嗯,大于等于两毛二,这个是满足的是吧。满足的,然后我们这个呢,嗯,一这个没输出啊。看一下。啊,这个我也没有去运行呢,还是吧,你看我要运行了啊。你发现是不是整了两遍?啊,你你别管它对不对啊,诶就是这样来讲,他不应该执行一个是吧,他这为啥执行俩呢,就是因为这个语句虽然说编译没有报错啊,这个语句呢,他会认为这个else呢,就只能管这一行。那这个的话呢,就相当于不是你这里边儿了,相当于就不是这个结构里的,那它呢,在你这个满足的时候,它就一定会输出来。但其实你想表达的时候呢,哎,想作为这个上面这个的一部分,所以说你因为省略了一个大括号呢,就出事了。那有的时候呢,你省了这个有大块你给省了,加了一一个语句之后呢,可能它就编译报错了都有可能,总之一句话呢,建议大家不要省。
13:04
就对了啊。我把这个呢,我就这样注释一下。行,这呢,就我们说的这样的一个问题,哎,那这道题呢,我们就说到这儿。课后练习咱们看一下,诶直接呢,打开我们这个课件往后走,诶看一下这块说呢,诶第一道题目,这道题目的话呢,可以看成是一道笔试题,它考察的呢,其实就是缺失的这个大括号了啊,你看看他这个题目的这个情况。哎,是这样子的,X是四,Y呢是一,哎就这样子的,那你看这块呢,跟这块都省略了这个大括号了。哎,省略大号的情况下呢,其实就很容易出错啊,要小心一点好,那么问呢,就是这道题呢,输出结果是什么。大家看一下。或者说呢,有输出结果吗?有谁呀?啊,爱硅谷是吧。嗯。特意放到这儿的是吧,你看为啥输出它呢,啊这个呢,让他俩对齐,其实呢,就是给你一种错觉是吧,感觉上呢,都是在if的这个执行语句里边,其实不是。
14:11
啊,我们呢,因为省略大括号呢,它就只能诶管这一行了啊,那这时候呢,从上往下走S大于二呢,满足了,哎满足的情况下呢,我们首先呢,就从这一对大括号里边呢,去找这个具体的执行了,就首先不会考虑这个else了。啊,这个注意,然后在这里边的话呢,诶Y大于二啊不满足不满足首先注意它呢,只能管这一行,呃,不满足呢,所以这个就不输出了,这个语句呢,其实要是格式化标准一点来写,其实应该是这样子的。哎,这样你会看得很清楚,那但这道题呢,不是故意呢,就是来混淆你嘛,所以他就放到这儿了,哎,其实结果呢,是它。哎,这个注意一下这个点OK啊。行,这是它,哎,然后呢,下边有个练习二,这个练习二的话呢,其实考察的点呢,主要还是考察这个运算符的,哎,你是写等等于还是写这个,呃,负值的这个符号它是有区别的,如果呢是这个。
15:06
啊,等等的,我们看这个结果应该是。结果应该是什么,就输出哪个。是不是应该是B呀。对啊,第一个呢,这是出,这是false,这俩呢就不是出了,哎,这个呢,这是出嘛,所以就输入它了。那如果说呢,我们写的是这个呢。输出哪个。对,这时候就输出C了,因为哎,你把false呢付给了B,那再看B这个值是false了,所以这个不执行。哎,就相当于是我们这样嘛,是吧,哎把false呢付给这个B了,这是false,所以它不执行,这呢是false,所以不执行非false就是true,所以就执行C了。哎,就这样子的行,那么在开发当中啊,你发现呢,就是你写成一个等号,俩等号呢,它都没有报错,但是输入结果是不一样,这就我们所说的啊,程序没有报错,但是呢,结果可能不是你想要的,这个你一定要小心一点,是不是呢,本身啊,你想写的呢,是一个等于,你想写的是等于,但是呢,由于我们上小学的时候呢,老师说这是等于。
16:09
所以呢,你会总是把等于呢就写成负值了,这个时候就容易出错了。小心一点,另外的话呢,在开发当中啊,我们想判断这个B本身就是布尔类型的,看它是不是false或者是不是true,其实我们就直接呢这样写就行啊。就是如果你想判断他是不是处,就就这个意思啊,比如说。哎,抛开这道题啊,说如果啊,你想判断这B呢,它是不是true,本身它就是个布尔类型,那我就直接写if b不就完了吗?对吧,哎,你想判断它是不是false。他要是false你就进去,那就他是false,你加个非。是不是就可以了。诶,所以这呢是我们开发当中呃经常去写的啊,或者说是这个呃,开发的这个老鸟容易写的这种操作就更高级一点,这个不就避开你用这个符号了吗。行,这就它,然后下边呢一几道练习题,这个咱们就看一看就行,我就不带着大家呢特意去写了啊哎,大家呢,可以把这当成一个一个的案例呢,去做一做,另一两个数small和big啊给了两个数,但是也有可能这个small这个数有点大,所以呢,你就判断一下啊,说如果这个small这个数呢,比这个big这个数要大的话呢,我就交换一下。
17:14
哎,然后呢,你去输出一下,哎,如果他这个smart的数本身就小,那就直接输出。哎,就这样写。行,然后参加期末考试,成绩呢,诶是零到100范围内的,然后呢,这块有一个级别,不同的成绩,我们输出不同的结果,这个呢是多选一的。啊,就按照我们上面讲,跟那个岳小鹏那个成绩呃,差不太多啊。嗯,好,这是我们说的这个事儿啊,这是第二种写法,就是上面这个呢,彼此之间呢,它是一种互斥的关系,没有这个交集啊,这个呢,就变成有交集的了啊,你要把这个范围小的写上边,注意。好,下面这个呢,定义两个印证形的变量并赋值,诶,如果两数之和大于等于50。那你就输出一下啊,否则否则也没说,那就不用管了。
18:03
啊,下边这也不难啊,定义两个大部型的变量。那如果呢,第一个数大于10.0,并且第二个数呢小于20.0,打印两数之和,否则呢,打印两数的乘积,哎,都比较简单一些啊。啊,这个我们就看一看,让大家呢见识见识不同的场景就行,说水的温度啊,根据这个温度呢,来打印相关的这个信息,先定一个水的温度。啊,然后呢,诶,如果它大于95度啊,怎么着啊,这个范围怎么着怎么着怎么着,诶这样,诶在写的时候呢,我们说到啊强调一下就是如果呢,这两个条件呢,是没有交集的,谁先谁后呢倒都可以,但一般呢也都是有个顺序啊。哎,再者的话呢,就是呃,如果呢,他们要是有呃包含关系的,你把那个范围小的写上边啊。啊,这个注意一下就行了,好,那整个呢,我们关于这个E呢,这个课连习题大家下来呢,也去练一练。啊,我就不一个个带大家去写了。
我来说两句