00:00
好了,那么关于这个复制运算符我们就说到这儿,那么位运算符我们现在先不用看各位啊,先不用看看这个条件运算符。条件运算符啊。来这边呢,点右键啊,咱们新建一个文件,我们叫做operator test05。来。Public class,我们叫operator test05,然后呢,我们这边的sta VO啊,我们看看条件运算符。叫做条件运算符啊呃,前面跟什么呀?布尔表达式啊,布尔表达式问号啊,然后表达式一啊,然后冒号表达式二啊,表达是二,这是语法格式啊语法格式。就是这样一个格式啊,布尔表达式。然后呢,表一冒号。
01:02
呃,其实这个运算符它长了三只眼睛,第一只眼,第二只眼,第三只眼,三只眼睛啊。那么条件运算符又被称为三目运算符啊,三目运算符。三个眼睛嘛,啊运动,那么它的运算原理或者行原理,行原理是什么。那职业原理是这样的啊,不能乱写,各位啊,在此强调一下问号,前面这个表达式只能是true或者是false,你不能随便来,你不能随便写啊,这个位置要么是true,要么是false,不能是别的啊,不能是别的。然后呢?如果你表布尔表达式结果为真,那么选择表达式一的结果作为整个表达式的结果。啊,如果你布尔表达式的结果为false,那么会选择表达式二作为整个表达式的一个啊结果啊,所以它的执行原理是什么呢?是不是啊,主要看布尔表达式,布尔表达式的结果为。
02:10
啊。表达式。一的执行结果作为作为啊整个。表达式的结果啊,布尔表达式的结果为false的时候。就这块啊,为false的时候,表达式二的执行结果作为整个表达式的结果,其实说白了啊,就是我官方去给大家解释这样的解释,就说呀,如果这个这个为真就选它,如果这个为假就选它,就这意思啊,就这意思,如果这个为真就选它啊,如果这个为假就选它,如果不表达式结果为真的情况下,拿着表达式一的执行结果作为这个整个表达式的执行结果。啊。
03:00
如果说你这个波尔表达式结果为false,拿着你表达式二的执行结果作为你整个表达式的一个执行结果,就是这个意思。啊为真选他为假的时候。啊,选它这是三运算符啊,那么我们在学这个运算符。我们呢,考一考大家啊,考一考大家来。我直接在这写一个100,我问大家一个问题。这个。有没有编译问题?这里会编译出错吗?我们写没写过这种这种这种程序。来,咱们还是得来一个小互动啊。来一波小互动啊各位这个。有问题吗?我直接这么写,你看原件代码怎么写的啊,Int I等于什么呀,哎,100。是不是,哎,这是一个合法的什么,哎,合法的Java语句吧,啊Java语句。
04:01
啊,表示声明的变量呗,啊,表示声明一个变量啊,起名是什么呀?哎啊起名I int I等于100啊是这样。嗯。我们之前一直这样写,那突然之间,我我我把这个加法语句里边,我把这个东西拿出来,拿出来之后放在这。这个有这种语法吗?诶我们之前没有写过啊,它不是一个语句,各位它不是一个加法语句啊,所以编译器会报错,我们来看看报什么错,加法C编译啊,Operator test05.java啊,那编译大家看直接第19行就报了一个错叫不是语句。不是语句。你这个不是语句啊,这个错误是不是语句。它不是一个合法的加法语句啊,这个不是一个合法的加法语句,不能这么写来,我问大家这样写行不行难。行吧。行不行?这个和这个是不是现在一样,这个不行,下边这个是不是也不行。
05:01
因为这个是字面量嘛。这个是整数自变量对不对。整数对不对?哎,这是什么自变量啊,带单引号的是什么自变量?带单引号的是什么自变量是叫做字符自变量对吧。那么直接写这么一个呃字变量,然后后面加个分号,这写个自变量,加一个分号,这个不行,那这个是不是也不行啊。所以这块的话,咱们呢,编译一下,大家看同样出了一个问题,第22行说错误不是语句,不是语句。不是语句啊,这个不是语句,你不能这么干啊,这个不是语句。啊,这不是语句,那么我这一块的测完这个不是个语句,这也不是一个语句,哎,那你说我这样写大家看好了啊,我有个布尔类型,我们叫sex性别啊呃,然后呢,我写一个。接下来我问大家现在这个程序,这程序是编译。好,你看没有任何问题是不是,哎,没有任何问题,那么接下来干什么呢?我这样写,我用一下我上面这个三目啊,大家看三步运算符啊,三木运符不玩表达式,哎,那这个就是不玩呗,不玩类型呗,是不是,然后后边有个问号,后边有个问号,这个问号后面呢,哎,我写上,如果这个为真的话,哎,性别就是什么呀,哎男,如果这个为假的话,性别呢,哎,我认为就是什么呀,就是女,那么现在告诉我。
06:29
这个程序第27行能不能编译通过?第27行能不能编译通过,就是分析分析这个啊,就是分析第。27行就是分析一下吧,啊代码啊,是否存在语法错误。啊,是否存在语法错误。那么大家看看啊,现在呢,我是不是这样去写了,那么这个sex是for吧啊,那是不是会选择这个女啊。那么也就是整个这个表达式执行完之后,是不是就相当于最后落了一个女分号啊。
07:03
男分号。是不是不行啊,那如果只有一个单独的女分号的话,大家想是不是也不行啊,所以这一块是不是编译就会报错呀。所以这个语句对吧。这个不是个语句啊,这个错误不是个语句,来接下来我们编译一下,好大家看,同样28行也出了这样一个问题,说错误不是语句,谁呢?说这个呀,他不是个语句啊,这个不是个语句,各位你不能这么干啊,你不能这么干。对,没有这种语法,它不是一个完整的加法语句,那它就是一个运算符,这个运算符是个三步运算符,运算完之后只是一个结果,这个结果它你单独拿了一个结果,你是没有办法啊,在这里运行的啊,它没有这种语法,因为它不是个完整的加法语句啊,那大家看这样行不行。呃,怎么做呢,比如说呀,还是这个前边呢,我写一个啥呢,我写一个唱。
08:01
啊,然后呢,哎,CC等于。哎,这样行不行啊,同学们这样行吗?这样行不行啊?好,我问大家为什么用叉。为什么用叉?因为最后啊,整个这个表达式的一个运算结果,它不是这个,它就是这个对吧。那无论是这个还是这个。我们是不是都带着单引号啊?单引号是啥呀,字符吧。那么既然是字符,是不是应该是个叉呀?对不对,哎,所以说前面这个类型不能随便写啊。前面的变量C。的类型,不能随意编写。啊,最终的计算结果是字符型,所以啊变量也需要使用差类型啊,那么接下来呢,我们来看一看,有的说老师这个运算符有没有优先级啊,如果如果你要是不确定,你可以在后面加一个括号。
09:14
啊,可以加也可以不加,你测一下对不对,哎,你测试一下,你希望后边这个表达式先执行嘛,是不是,哎执行完之后呢,通过等号的方式给它附到C这个变量上来,system.out啊system.out点打印输入什么呢?C。好,那么接下来我们去一下。好,编译之后呢,我们运行Java operator test05好走一个好,大家看最后是不是女呀,啊这是不是呀,那如果这个位置为真对吧,那如果这个为真的话,这就是真,这个为真就是选他呗,选它作为整个这个表达式的一个结果呗,对不对?哎,所以最后呢,应该是个难啊来我们Java c呢,去编译一下Java去运行啊,最后是一个难,那么这个三目运算符呢,我就讲到这里,各位啊,这个运算符啊,大家现在呢,先把它的语法机制先记住啊,什么机制呢?首先看第一个表达式的一个结果,第一个表达式结果如果为真啊。
10:15
选表达式一啊,作为我们整个表达式的结果,如果不二表达式的结果为false啊,会选表达式二作为整个表达式的一个啊结果啊是这样的,那么这块呢,我在这里啊给大家很突然啊写了这么一个语句啊,估计当时也把它吓吓够呛啊说诶怎么还能这样写啊,以前不都这样写吗,对不对,哎,这个呢。咱们不是一个语句啊,这是一个值,对你单独有一个值字变量,嗯,加一个这样的东西肯定是不行的啊,然后这块呢,如果诶单独写这样一个单引号里边放一个难的肯定也是不行的啊,那么在这块呢,既然上面这个不行,这个不行,那这个肯定也是不行的,对吧,你想想这个呢,如果为真,那就选这个呗,作为整个结果呗,那作为整个结果不就这个跟这个一样了吗?对不对,如果这个为假,那选这个的话,那那大家看是不是就相当于跟这个道理还是差不多的,所以这个不行的话,下边这个肯定也是不行的。
11:09
啊,所以呢,你得有个变量去接收一下,接收一下好,那我我问大家一个问题啊,我会故意刁难一下啊,实际开发中啊,实际开发中不会这样啊,不会这样故意刁难一下啊。故意的啊,故意的来这边我们加个双引号行吗。就是这个结果呀,编译器啊,它会在这检查。检查。这个呢就叫做XY啊C这么点二零打印输出X,这样行吗?就结果是单引果双引。啊,就是说这个结果呀,他将来不确定。啊,有可能是一个字符型。这个结果有可能是个字符串。那你现在很很很直接在下面在前面用一个差变量去接收行吗?这个显然是不行的啊。
12:02
必须不行,因为编译器啊,它会检查,它检查你等号后边这个数据的一个类型,它会检查数据类型啊,那你整个后面这个数据类型啊,它有可能是字符。啊,也有可能是什么呀,字符串编译器,它只是检测检检测到这个的啊,那么检测到这个之后呢,你前面写了一个差变量去接收,那这个编译器肯定不同意啊,我们来看是不是类型不兼容啊,我们看一下第37行来编译一下。不兼容的类型条件表达式的类型错误啊,类型错误,所以这个你不能这么干啊,不能这么干。啊,不能这么干啊,所以这块就出问题了。不能这样,诶,那你说我这样行吗?塞点out.plan打印输出,我直接把这个东西,当然大家不会这么写啊,谁在这对吧,写个单引号完了之后后边写个双引号对不对?哎,同学们告诉我这个行不行?这个print LN括号里边我这样说出,这样做行吗?这样可以吗?
13:01
当然我说了这个研究这个没有意义啊,因为以后也不会这样去写,但是就是好玩嘛,是不是咱们看一看啊,这个行不行啊,这个是肯定可以的,为什么?因为大家知道system.out.print LN这个括号里边东西很牛啊,这里很。肯定为啥呢,因为这里什么东西啊,什么类型的数据。我双引号100,然后呢,我们在这呢,再输出一个什么呀,哎,单引号字符A对吧,这都是允许你看括号里边这个东西的类型不一样,你这个类型可以是整数,也可以是带双引号的字符串,也可以是这这种叫做什么呀?哎,单引号啊方法重载,那这个东西后期再讲的啊,你不用不用什么重载这个那的啊,你说这个大家听不懂啊来这个呢。行是不是,哎,所以说大家想一想这个行不行呢?哎,这个可以啊,这个可以来我们去编译一下,然后ER。
14:13
行了,那你也可以在这重新赋值啊,Thanks,赋一个false。是不是哎重新了嘛,重新复制之后呢,这边就是个呗,对吧,你再来一次Java编译,然后Java去运行你看。对吧,男女是不是好了,那关于三目运算符,条件运算符,我们就说到这里吧。
我来说两句