00:00
来,那么我们来看第一个if语句,好吧。啊,理论讲了半天了,讲了半天了,那么接下来看第一个if语句。那这个if语句呢,我其实在之前我写过一回,你比如说给个不玩类型。嗯,给个Bo类型啊,嗯,Thanks真。啊。这叫定义,一个什么呀,叫定义。一个布尔类型的变量表示性别。啊。呃,业务是这样要求的,当当。为真实。表示。嗯,为处时表示难。为false时。表示女,那你这个语句该怎么写?
01:01
怎么写if?衣服。啊,等于等于。啊,如果为true的话怎么着?等处,System there out their plan打印输出。难。Else system.out system.out printline打印输出女好,这样写行不行各位?这样写可以吗?可以是不是,哎,这个也是可以的啊,可以的。你要这么写行,没问题啊,但是你多此一举了。啊,多此一举了,什么意思啊,我们先把这个退了,然后把第六章我们打开。加C。啊if test01.java然后呢,Java运行if test01走好大家看。
02:01
没毛病啊,没毛病,代码可以。把这个变量呢,给它改成什么呀?False,那这块呢,再运行,你看是不是就是女了啊,这个代码现在理解起来就很很好理解了,但是你这么写你有点儿浪费。因为这个变量它本身就是个啥呀,不玩类型。如果本身就是不玩类型,大家知道if语句括号里边填的这个东西是不是就是一个不玩类型啊,所以说你这个if语句没必要这样写呀。对不对,你这样写的话就显得你很小白了啊,你可以把这个删掉啊。对不对,你这样写不就行了吗?因为你这个变量本身就是布尔类型啊。如果这个为真的话,那这个就是真啊,这个是针,是不是就走这个了。是不是如果这个为甲的话,是不是这个不这个不成立,这个不成立,是不是走这个了啊,所以说代码改良啊改良。
03:02
叫做改良啊,改良之后就是这样啊,来Java c的编译Java去运行对不对,哎,女。对吧。也可以啊,你把这个再给它改成,那么我们再来看一看,重新复制加va c加行,你看难呗,对吧,这个输出难了,因为这个结果为真嘛,哎,为真的话就是难嘛,是不是,哎,当然我们其实可以可以进一步。可以再进一步。改良。怎么改良啊?哎,可以使用什么呀,三目运算符啊。是不是,哎,你可以这样写不更简单吗?Print LN直接在这里sex为真的话输出男,为假的话输出女是不是,所以你这个程序看你怎么弄啊,编译去运行。对吧?哎,然后呢,你这一块你可以给它改一个值,改成false,那么来编译一下,我们再去运行,所以一个Java程序有多种写法啊,一个Java程序有多种写法。
04:13
各位啊,你看你用哪一种。代码既简单效率又高,既简单效率又高啊,那么大家看代码可以这样写吗?可以这样写吗?比如说上面这个啊,If拿过来说八放到这儿,放到这儿之后呢,我在这儿啊,写个单等号行不行啊。给thanks。来,我们来编译一下Java c编译。通过了。是吧,哎,Java去运行啊,Java注意啊,注意if test01走。好,大家看这样也可以,为什么这个也行啊。啊。
05:01
输出难。注意啊,在这里呢,你需要记住一点,各位。啊,记住一点,小括号当中取的这个值是哪个值。小括号啊。当中。最终取得值。最终取的值是什么?是?变量的值。啊,变量的值R是什么?R是布尔类型。所以这个可以。通过啊,可以编译通过,并且可以运行,可以运行啊,但是你这么干有什么问题啊各位。嗯。有什么问题?
06:01
你现在在这个位置上把thanks给它改成false有用吗?你改成false它就会走它了吗?你改成false就会走它了吗?不行,为啥,因为你在做if语句的时候,你又把重新附了一个值是true,所以如果说你要是这种写法的话,就会导致你的这个分支啊,永远执行,下边这个分支永远都执行不到。对,就像邓俊说的,没必要写I了,你这个I才写啥呀,因为你这个赋值运算嘛,对吧,我在这里再强调一下啊,这如果用双等号,那本身反馈的就是不尔类型,可以没毛病啊,但你可以把双等号去掉,后边不写,采用这种写法啊,这种写法是合规矩的,或者采用三步运算符也是可以的,但如果你采用单等号呢?如果你采用单等号的话,就表示说呀,等号右边先执行,把执行完的结果付给了左边的变量小括号里边,将来小括号里边这个值啊是谁呀?
07:01
哎,就是这个sex变量的值啊,这个小括号里面就是sex变量,小括号当中最终取得值是sex变量值,而sex是布尔类型,所以这个可以通过。双等号是什么意思?双等号是关系运算符啊。双等号是关系运算符。是关系运算符,不是赋值运算符。啊,双等号用来判断相等的双等号啊,双等号是用来判断是否相等的啊,是否相等的。不具备赋值作用,但你这个用单等号的话,这样的话就相当于把这个处就付给谁3X。然后你你你想想你你你这块假如写个sex等于false吧,你改了啊,你sex等于false是吧,改了改完之后你if。对吧?哎,然后S等于处,你这个等号是不是就有负值作用啊,这样的话是不是把这个S就改成处了呀。
08:01
对吧,你改成处。你原先是false,你到这就改成处了,是不是永远都走这个分支,这个else是不是没有机会。没有机会吧?来我们再看一下啊,编译一下Java c编译Java运行。大家看最后是不是难呀?输出这个吧。你改一下等于false有用吗?你改false。有用吗?你改了false到这儿,是不是在执行的时候,它是不是还会再改为处啊。是不是再编译啊,你看编译一下再运行,你看还是难啊最后。是不是还是。所以这种写法要注意啊,这种写法要注意。这个会导致I分支啊,就废弃掉了。虽然这种法可以导分支。啊。虽然这种语法可以,但是会导致else分支。不能执行L分之永远不能执行。
09:04
愿不能执行好,那么现在这个应该理解吧,各位啊。首先这么写应该理解吧。嗯,双等号啊,是判断它俩相等不相等啊。你双等号能不能去掉啊?双等号可以去掉对不对,这样写行不行?可以,因为因为啥呀,因为因为sex本身就是布尔类型啊。对不对,哎,你可以这样写,哎呀,咱们昨天讲的东西不能忘啊,各位还记不记得我们讲过一个关系运算符包括什么大于大于什么等于,然后小于小于等等于等于和不等于嘛,是不是我当时说没说过这些运算符运算完之后的结果都是布尔类型,这些运算符运算完之后要么是要么是false。
10:01
是不是正好可以放到if的小括号里边啊?If后面小括号里边整个这个整体,从这位置开始到这个位置结束,整个这个整体要么是true,要么是false,只能是这样的。那你双等号为啥不行啊?双等号可以呀。啊。双等号可以啊,双等号可以来这块呢,我们先删了它。但是你说那话没有意义呀,你没有意义,因为我本身这个变量的类型就是不玩类型啊。所以你可以把变量直接扔过来不就行了吗?所以后面就不用了。啊,或者你用三木。三目啊,除了三目之外,哎,你要用这种方式不行啊,用这种方式不行,用这种方式的话,你虽然语法上没什么问题啊,但是我说了你这个逻辑上百分百出问题,因为这个等号单等号是赋值运算,赋值运算会把右边的这个处呢赋给左边这个变量。
11:00
你原先是什么值,它在这统一都给你改成true了,就你原先是false也好,是处也好,总之我不管你啥,走到这一行,Sex一定是true。啊,走到这一行在一定是出啊,就以前sex不管。不管是是true还是false。走到这一行啊,Sex一定是true,并且我说了啊,If小括号里边如果写sex等于true的话,那么是等号,右边先执行,执行完之后呢,左边的变量整个的一个整体,从这开始到这结束,它还是一个布尔类型。啊,不行。不玩类型,所以我们这个语法是通过了,但是呢,它意义不大啊,它意义不大,所以这块呢,我们把这个不玩类型这块啊,哎就删一下啊删一下那以前就是不管啊是true还是false,走到这就一定是出了啊,就导致说这个size是true呢,就导致这个大块里面一直执行这个二就不执行了I没用啊,所以这个程序一直是输出难,你看编译运行。
12:02
对吧,你已经改成false了呀,但是还是说出难啊,为啥,因为这个赋值了啊行,那么这样写行不行,比如说int类型I等于100,完事之后呢,E来了,有同学就顺着我写了啊,说I啊现在啊等于多少啊200。那我问大家一个问题。就I等于等于I等于等于100吧,好,各位,这个语句行不行?system.out.print。打印输出I是100。这个行不行啊,没问题吧,来我们编译一下Java c呢,我们编译一下,然后我们Java去运行,是不是ii是100,那I是100,为什么会执行啊,那原因很简单,因为这个条件成立了呗。是不是,哎,这个条件成立了,那么这个条件成立了,所以这个才会执行,那有同学就顺着来了,老师,那我这个能不能这样干呢?就是说这个双等号写成单等号行不行,那这个你就有语法错误了,为什么呢?因为你这个单等号在这儿赋值100,赋给I之后呢,I是个什么类型啊,是个int类型,那么就会导致你整个这个东西它是个int类型,但是if语句小括号里边只能跟的是不玩类型,你这个就是类型不对了,明白吧,所以I等于100在这里就不行了。
13:18
I等于100,在这里就不行了。啊,你你你你不要学这个啊,这个sex等于two,那之所以形式,因为本身sex这个变量,它的值就是一个布尔类型,所以在这里是没有任何问题的。啊,没有这个问题的,但是如果说你你你这块I等于等于100,你这个结果是true还是false对吧,你本身就是true或者是什么呀,False,为啥呀,因为你用的运算符是哪个运算符啊,是双等号运算符啊双等号运算符,那么我们下面这个为啥不行呢?因为啊这个数据类型不对了,100付给这个I之后这个整个。运算完if括号里面就一个I,这个I的类型是int,你if括号里面只能跟不玩类型啊,所以I这块呢,等于等于多少啊,哎,不能等于啊,等于100啊,我们来编译一下。
14:06
来Java c呢?去编译一下好了,他说不兼容的类型int无法转换成布尔。说谁呢,说这呢。编译报错啊,编译报错不加入类型,Int无法转换成布尔,就这个是个int类型,这个整体执行完这个是int,它不是布尔类型啊,就是这个I等于多少啊,100这个整体执行完之后是一个int类型。啊。不是布尔类型。啊,不是类型,那上面这个呢。这个整体执行结束之后,它是个波尔类型。虽然它是个负值运算吧,对吧,虽然它是个负值运算,但是最后结果它是个布尔类型,这个哎,它是个负值运算,但是它赋完值之后,整体的这个这个哎,它是一个什么呀,它是一个int类型啊,所以语法上就有问题了啊,就有问题了。
我来说两句