00:00
今天的话呢,我们把这个运算符呢就讲完了,然后呢,我们再开一部分的流程控制的内容啊,这就咱们今天的一个情况好,那么运算符这块呢,我们打开这个课件。诶,昨天的话呢,我们最后呢,是讲到了叫算术运算符啊,算术运算符就告一段落了,那么在算术运算符当中啊,咱们也都提到了比较有难度的啊,或者有的时候在这个笔试当中经常出现的就是我们这个加加操作和减减操作。哎,那相较于减减操作来讲呢,加加操作在我们平时洗的频率上来讲呢,似乎又更高一些。啊,因为经常我们比如说去做一个便利。哎,什么叫便利呢?就是比如说我从一要求让你输,输出到100,从一到100的每一个自然数呢,都执行一次,这个呢,就成为呢,从一到100的一个便利了。通常情况下呢,符合咱们认知呢,咱们都习惯了正着去数数数是吧,所以呢,我们用加加的操作就比较多一些。啊,很少说呢,我们一上来说从一到100便利一下,然后呢,你自己写了一个,你是倒着来的,好像不太符合我们认知一样是吧?哎,所以加加层呢,在平时开发中用的相对来说多一点,但是呢,加加你要会了,减减也是一样的道理。
01:09
OK行,这块呢,是需要大家额外的去注意的这个点,包括呢,咱们课后练习题当中,包括大家我也看这个下来做一些题目哈,像这种题目呢,就是有点恶心大家了啊,诶实际上在开发当中呢,我们写代码的时候,大家要避开像练习四这样的写法。啊,你想自己都整不太明白的是吧,啊,结果因为的结果呢,不是你想要的啊,回去那捋就捋懵了啊,你把这个操作,如果有类似这样操作,你把它拆成几步去写,你肯定就错不了了。行,这就过了,然后接下来的话呢,我们看第二类运算符叫赋值运算符。哎,关于它呢,咱们说一下啊行,那提到这儿的话呢,咱们就新建一个Java程序啦,嗯。回到咱们这个代码层面。哎,我把代码呢,都写到这个文件夹下了啊,还是在咱们这个第二章,嗯,前面呢,我们是讲了这个叫哎算术运算符。然后这块我把这个呢借用一下啊,好在我们这一章下呢,再去新建一个Java程序,这个呢叫赋值,赋值我就写成叫set value吧,啊赋值的意思了啊,关于它的一个测试。
02:13
好,测试运算符的使用二啊,这个我们叫赋值哎运算符哎,关于它的一个使用,好CTRLCCTRLSCTRLV保存一下。行没问题了啊好,那么负值运算符其实呢,我们接触的还挺早的,我们在定一个变量的时候啊,说特I等于五,哎,这个呢,咱们老师叫等于了啊,其实就说顺口了啊,哎,其实严格上来讲呢,不能叫等于。就是一个负值符号,所以说你说这个话我们怎么说是更严谨的,就是我啊int一个I赋值为五。哎,这样说是比较严谨的啊,当然呢,平时说顺口啊,我们就是,哎,In特I等于五啊,所有人都这么说,那也没问题。啊,你也不用去较真,这不是等于啊,这个没必要跟别人去吵了啊行,这个符号呢,就是我们所谓的叫负值符号啊,那负的这个值呢,咱们前面讲变量也提到过,一定得符合人家这个类型的。
03:12
那这呢是一个整形,那你就绝对写整形,而且呢,你也不能超出这个int的范围,超出范围呢,编译也过不了。啊,这个咱们都已经知道了啊,那除了这个赋值符号之外呢,这块还起到了几个叫扩展的赋值运算符。诶,大家看啊,这个呢,我们可能就没有见过了啊,加等于减等于乘等于除等于和取模等于。哎,那么这几个符号呢,应该就是我们现在要讲的这个运算符里边重点要给大家去说的啊,这个是呃,相应的这些运算符,这是一个。哎,还有后边的这样几个。好,这个呢,就是我们要讲解的这样一些运算符了,好那么咱们针对这个符号的话呢,应该说比较熟悉了。比较熟悉了啊,下边呢,关于这个符号呢,也有对应的这个说明,哎,我们先把第一个呢粘过来看一下啊。
04:02
这是我们的一个说明。哎,说明是这样写的,这个我们写成是一个小一啊说呢,当这个复制符号两侧的数据类型不一致的时候呢,可以使用自动类型转换,或者呢,使用强制类型转换的原则呢进行处理。那这个呢,应该大家一看也明白啊,诶像我们这里边这个五呢,就直接付给in特I了,我们也不理解说是啊,自动力行提升啊,或者强制力行转化了,这都没有这个讲究了,但是如果我们要是这样写的话哈,我long类型的一个。这个这个GL啊,让它呢,复制为比如说这个十。哎,咱们前面也都提到过了啊,那么这个十的话呢,我们就可以理解成它是一个int类型。哎,然后把这个十呢,哎,In的类型呢,复制给这个long类型了,哎或者你这块呢,你你不用它写个float啊,一样的道理,这个呢就理解成了叫自动类型。提升了是吧,OK啊行呃,那么强人型转化呢,比如我现在定一个bit类型的叫B,这个呢,我就想把I呢付过来。啊,I的话呢,为代表的它是一个in的类型,哎,那么首先呢,我们说要不呢,你满足类型一样,要么呢是增型提升,哎这个呢,就显然都不满足,就得是做一个强转了。
05:12
对,旋转完以后呢,你是个bad类型了,哎,然后呢,又可以复制了。所以这个呢,属于叫哎强制类型转换行,这个呢,就是咱们已经讲过的这个事儿啊,哎这个呢,我们就说一下就完了,然后第二点那这块提到说它支持叫连续赋值。哎,支持连续赋值,诶怎么叫连续赋值,来我们给大家去演示一下啊。哎,连续复制行,那么诶我们这呢,也是一个具体的这个操作方式啊,操作方式一就是操作方式一呢,这还不算是叫连续赋值了,就是以前呢,你看我们要定一个变量啊,定义两个变量啊,比如说呢,我定一个嗯叫A这个值呢是十,哎我再定一个B呢,它的值呢也是十。啊,A和B的值呢,恰好一样是吧?哎,那么我们如果用另一种方式写的话呢,就是这样写也是比较规范的一种写法,那么第二种方式呢,我们就可以使用叫连续赋值。
06:12
那这块我写成叫A1吧,B1是吧,好,那怎么写呢,我就印了一个叫A2逗号B2。注意你看我是这样写的哈,呃,其实你说我我不这样写也行,那你就是老老实实的这样去写。对吧,哎,那这呢,我们说呢,或者呢是叫呃合并啊合并呢就是int一个A2逗号B2这个呢,去编译也是能通过的。啊,也是能通过的行,那连续复制还没出现呢,哎,下边就出现了,我呢就A2B2,然后呢,复制为十。哎,这样的操作,这呢就叫做这个连续复制。好,那我们呢,也可以去打印一下他们俩的这个值啊A2。哎,逗号一下。B2。哎,保存好,那回到咱们这个代码层面啊,在这个位置CMD。
07:01
哎,回车一下啊,调到这回过来好Java c。嗯,Value test.java。诶,你看我这个编译已经通过了啊,编译通过了,其实就说明我们的语法呢,就没有问题。哎,这两个十呢就出来了。所以呢,这样写是没问题的啊,或者呢,你这样写也行。那你显然呢,这样写比这样写看着好像少一个int是吧,哎,当然理解上的话呢,哎,你得知道这个是OK的啊。哎,这个呢,就属于呢,叫连续复制。啊,连续复制啊。行,嗯,这个呢,是我们说的这个连续复制,那其实这块呢,还有一种更呃常见的其他的一种操作哈。哎操作哎方式三是吧,这个操作方式三的话呢,呃,比一和二的这种方式就更呃要普遍一些了,你看我们上边这个A1和B1或者A2B2呢,它俩的值恰好都是十,我们用的是这样的一种方式哈,其实这块呢,我们更通用的情况呢,就是我定义两个变量,比如说呢,A3是十,B3呢是20。
08:05
啊,你要这就相当于另外一个事儿了啊,哎,那要按我们原来的思路的话呢,我们就A3。这写这个十。In特一个B3呢,写成20就这么着了是吧?哎,那现在的话呢,我们说呢,诶你也可以呢,就不这样去写了,这首先是一种方式哈,可以怎么着写呢?诶我这样写啊,In特一个A3呢是十是吧。哎,逗号一下,B3呢是20。哎,你看一下啊,我这写完以后呢,我们先做一个编译,哎,大家你看是通过了,那说明语法上这样是OK的,那对应的你要打印它的值呢,也是没有问题的。哎,保存来。编译运行,你看可以是吧。行啊,这儿呢,我要讲的就说完了啊,这个呢到谈不上说叫连续复值了啊,连续赋值主要说的是这个事儿啊,只是说呢,说到它的时候呢,顺带着我们把这种方式呢也讲了讲。
09:01
啊,这个呢,指的就是这个结构和这个结构大家共用了一个int类型,有点类似于我们刚才这个写法一样。啊就行,那至于说呢大家,哎,开发当中你说我我这样写还是这样写,其实都可以,这都是小事,只不过呢,你说我就是习惯这样写,哎,那你注意一下,你要看到别人这样写了,你知道也对啊,就完事了啊好,这呢是我们关于这个赋值这个符号的一个说明,哎,接下来的话呢,我们看到有这样的一系列的符号,哎,我们把这些符号呢,给大家说一下是什么意思,那么这些符号里边呢,我们似乎看到了叫加减乘除和取模,这个呢,又属于我们昨天讲的叫算术运算符。啊,那么所以他们整个的结构你看还挺整齐的,沿G呢,就是我们讲清楚一个,剩下的大家也自然而然的就清楚了。所以我们这里边儿呢,不妨以加等于为例进行说明啊。那这呢,我再画这样一条线啊。哎,上面呢,是我们讲的这个。赋值的这个符号的事儿。
10:01
下边来讲这个叫拓展的啊。哎,说明一下。哎,这个咱们叫加等于它的一个使用。OK啊行呃,那关于它这个使用呢,咱们就直接上一个例子了,我这呢来一个M1,这个值呢是十,这个M1,首先呢,这个赋值运算符呢,还是负值的,我这是个int类型数值才可以做加减,所以我首先定义的就是个数值。然后它具体这个写法呢,就是M1,比如说加等于一个无。哎,就这样去写啊,那写完以后的话呢,我们比较感兴趣的就是当前这个M的值变成多少。哎,我们一测试呢,发现这个值呢,就是15。你看15是吧,哎,那就相当于这个M呢,M1这个值呢,它在原有的十的基础上加了一个五。啊,有同学说诶加个五,那以前都怎么写。这样这样写,你看行不行啊,这样写行不。是吧,我让M加个五,我就直接就把这一行替换了,我就这样写行不。
11:04
不行。对,你是让M1这个,它代表的这个变量的值十加了个五加,然后呢,是不是你还得把它再付给M1是吧。对,所以说呢,就是这个操作呢,似乎呢,哎,我们说呢,跟这个是一样的。啊,这个我用了个词叫似乎啊,似乎呢,我再换一个呢,我叫类似于啊。哎,这个操作。所以说首先啊,大家呢,比较直观的去理解这个加等于的话呢,你先把这个结构跟这个结构呢,先看成是就是一样的啊。或者你以后呢,大家再看的时候,加等于五不太明白,你就把它换成啊,让这个变量跟这个值做一个加法的操作,得到的结果再付给这个变量。这就是加等于的意思,在现有的这个变量基础上加个五。那减乘除取模都类似。啊,都类似,OK,行,那再下一个点啊,我这写的叫类似于,那说明跟它还不太一样。
12:02
啊,那么下边我们要说这个区别在哪儿呢?这个区别的话,如果你要是看int呢,其实你是不太能明显看出来的,我换一个变量你就知道了。我来一个be的,我叫B。啊B1我下面好像定义过了啊,我来个叫啊BY吧,这个值呢,我定义成是十。啊,这个BY1我加等于一个五。哎,我再去打印一下他的这个值。啊BY1好,这个五的话呢,大家可能会说,诶这个常量是吧,是不是应该是个in的类型呢。是个int类型啊,但是要int类型的话呢,这一家诶前面讲过运算规则自动类型提升似乎好像有点问题是吧,编译会不会过呢?走起没问题,运行还出结果了。啊,那说明呢,我们这个操作呢,是完全符合语法规则的啊,那这个既然符合了,呃,按照我们的想法说,诶这个怎么去理解呢,刚才上面有这个经验了,说是不是就等于这个事儿呢。
13:06
你发现了,这俩就不一样了。哎,如果你是这样写代码的。一定编译不通过是吧。这个都能理解是吧,哎,这个代码呢是编译不通过,因为这个五呢,就是一个int型的,然后跟他一做加法运算呢,结果呢,就是int类型,Int类型你又赋给一个bad类型就报错了,必须要前面加个小括号。是吧,哎,我们说这个。啊,这个操作呢。哎,操作汇报编译时异常,哎,或者就编译报错吧。异常咱们还没有,呃,这个说这个词呢啊,咱们就尽量避开它会编译报错啊,应该写为是吧。啊BY1BY1。那这个得括号一下啊,再加上一个五啊,这样写呢是可以的。好,也就是说呢,你想让这个PY呢,加上一个五,就是这个值呢,变成15,按照原来的写法,你得这样写,那现在的话呢,我们可以这样写了。
14:08
那通过这个呢讲解我们说明一个道理什么呀?就是我们这个变量呢,加等于一个数的时候,这个得到的结果不会改变这个变量本身的数据类型。哎,这个我们在这写一下啊,写成个三。嗯,三说这些啊,这个操作啊。啊,不会改变变量本身的数据的类型,哎,什么意思呢?就是咱们刚才举的这个例子,这呢是一个fat类型加等于五,这个五呢,其实你还可以看作就是一个。类型。可以看到是个int类型啊,但是运算完以后的话呢,并没影响影响它的这个本身的类型,这个呢,大家可能说有点意思,但是好像还不够深刻,来我再给你举一个深刻的例子啊,来一个M2 m2呢咱们就来一个一吧。
15:02
然后呢,这个M2呢,我让它乘等于零点。这个事儿呢,你觉得靠谱不?感觉好像不太靠谱似的是吧,好,来我们看一下啊。编译首先过了。他竟然过了啊。好,然后呢,我们看一下这个结果。啊,零。啊,怎么来理解哈,呃,这个呢,其实呃,我也是这样做的,别看你看我写代码时间很长啊,我也是这样做的,我看到这个呢,其实我也不太。看着不太顺眼是吧,哎,通常我都会把它也改成是这个事儿。哎,我也会改成这个事儿,只不过改完以后的话呢,我再告诉自己,跟这个呢不太一样。啊,因为呢,这个操作呢,不会改变这个变量本身的数据类型。你要是这样写的话呢,显然是会编译报错的。啊,因为呢这呢是个int类型乘以一个double了,结果是double double又付给in的,这肯定报错是吧。哎,你可以呢,理解成在这个基础之上呢,我们又做了一个强转一样是吧。
16:05
那这样理解的话呢,你可以把这个跟这个呢,看成是一种等价的一种操作了,那这个操作的话呢,诶正常来讲这个结果似乎是0.1,呃零点啊对0.1,然后1T1阶段是不是就变成零了。哎,所以这个结果呢,它就是零。那就是你要说等价的话呢,你可以把它跟它看成是一个等价的操作,但是呢,也不一样啊,因为这个你是先有double,后来又变成in特尔,这个呢,直接就理解成它的类型不变。哎,就可以了。哎,通过刚才呢,这样的两个举例呢,哎,大家呢,去体会一下这样的一个事情。啊,你也不用死记硬背啊,其实刚才一说呢,也就能明白了啊好,那么这个完了以后呢,咱们做一个练习。哎,这个练习是什么呢?说如何实现啊,说变量。啊,变量这个的值啊,增加二,哎,这样的一个操作。哎,如何实现变量的这个值增加二这个操作。
17:02
这个没有说这个变量的类型啊,那咱们就呃常常的都呃习惯上写成in的类型了,那咱就还写成in的类型,那这块呢,大家看看有几种方式去做呢。哎,比如说一的一个,这个叫M吧,嗯,MN吧,N1是吧,这个值呢,假如就是十啊,我想让这个值增加二可能传统来讲呢,我们就直接呢。是不是这样操作了。哎,这个是比较直接的啊,哎,我就我就不打印了。行,这是一种方式了。然后呢,方式二。哎,是不是我们就int假设叫N2呢,它是十,然后让N2呢。是不是加等于二啊。诶,就是这是一种方式,这是一种方式,那这两种方式推荐哪种。哎,下边这种。就是以后呢,咱们写代码的时候呢,确实都习惯上就如果呢,你让这个变量加等一个数啊,减等一个数啊,或者乘等于除等啊等等的哈,曲末等于咱们一会儿也有相关的一些练习的支撑啊,诶这个时候呢,我们就推荐你就直接这样去写了,它也不改变这个变量的本身的类型。
18:06
OK啊,In呢,似乎不明显,但是你要换成short呀,BY呀,那肯定这样写,你这样写报错还得加强转,比较麻烦啊。行,这呢是说的他,哎,那要是有这个练习呢,顺带呢,我们再讲个这个练习二啊。A2的话呢,说如何实现变量的值增加一。对,那首先的话呢,这样两种方式是不是仍然可以。原封不动的拿过来,这个咱们改成叫,嗯,这个这个叫。换一组吧。没有过I是吧。这个咱们做这种测试让变量还挺不容易的啊,好,这个换成叫I吧。这组没问题是吧,哎,这个改成一啊。加个一,然后这个呢,我换成这个叫I2这一组。让他呢,哎,加等于一,你看这样也行。这个就别写推荐了,咱们是不是还有更好的方式?
19:01
对,直接呢,就加加就完了啊。I3加加。哎,你说我写成加加I3是不是也行。诶都可以啊,因为这呢,你只涉及到自增一,没有涉及到其他的运算,所以你是先加呀还是后加呀,这个就无所谓了啊。行这呢,三种方式里边,我们其实反而呢,是不是就推荐用这一种了。对啊,就是自增一啊,自减一啊,大家你就用加加减减就行了,然后呢,如果涉及到不是一的话呢,你用这种操作。啊,就是推荐了我们上面的这种操作OK啊,保存来测试一下啊。编译啊,没问题,行这就过了,行这个事儿呢,我们就成了。啊OK啊行,那么关于咱们这个,呃,拓展的这样的几个复数运算符,咱们就告一段落,剩下这几个呢,我就没有特意的去讲了。啊,其实这个操作呢,都是类似的,你就把它理解成是哎这样的一种行为。咱们看一看这个课后的练习题。
20:01
好看这啊练1SHORT一个S是三,这样写是不是就变异保缩了。对,然后这样呢。是没问题的。对这个注意,所以以后我们推荐这样写啊,这是一个啊好下一个,那这个呢,其实就我刚才讲的这个事儿了。哎,这个呢,你一定要告诉自己啊,这个编译呢是完全没有问题的,没有改变I本身的类型啊,那就相当于做了一个阶段操作,所以I呢指的就是零。啊,零了你又加价,这不就变成一了吗?没问题啊好,然后这个。这个话呢,是M是二,N是三,这样写一看就有点儿懵。我猛。啊,你就把它改改就行啊,乘等A,那就是首先N,它就等于N呢,去乘以一个M加加。哎,就这样就完了啊行,然后呢,咱们就来分析啊,说这个呃,就是注意啊,这个运算符呢,它的优先级是比较低的,咱们先把右边呢都运算完以后呢,把它再付给左边。啊,你别一上来说N呢,复制为N,嗯,啥意思呢?是吧,完套了啊哎,先把右边看成个整体,然后最后呢,再复制给N,所以呢,右边我们从前往后来,首先N是三。
21:10
乘以。先把这个值先拿出来,然后后加加是吧?哎,那先拿呢,就是M的值,M值是二,所以呢,就是三乘以二,然后这个M呢。哎,加个一,它就自增一变成三了。好,然后呢,这个三乘以二,然后这个呢,再付给N。哎,所以这就是六是吧,哎,它是六,它是三,所以这个呢,这是三。哎,这呢是六对,就这样来考虑啊。好,来下边这个。N呢是十。你看嗯,还是有点迷糊,好,我们这块呢,就接着啊说N,再加上一下后边这个事儿。CTRLC,哎,这么着。没问题啊。这个里边呢,他把这个小括号呢,给大家加上了,哎,看着就会更清晰一些啊对一说这个的话呢,这个我要给大家提醒一下啊。
22:02
刚才我们这儿讲一道问题,说让这个N呢,是不是加上一个二啊。有的同学就自创了一种方式哈。说呢,你加个二不就是举个例子啊,N3是十个十,然后N3加加再加加是吧。这行不行?这不行啊。诶诶编译是吧。报错了68行。这是不行的啊,错误的写法啊。有同学,本来我也没想到这样写。说完之后呢,想到了是吧,呃,想到你也别这样写啊,不行。好,这个回过来啊,那回过来以后呢,注意人家这不报错啊,你可能说这这怎么一堆加号呢,这个就加加了一次,这个是这个是一个整体的符号,这呢是一个加号啊,所以这不是一个意思了啊。好,看这个。这呢是十。加上。后加加,先把这个N的值先取出来十,然后注意接下来N呢变成了11对,然后再去加上。
23:05
先加一,它变成12。然后呢,再把这个值再取出来。就是12吧。对吧。诶不是先加加11变成12了,然后你再把它看成个整体,然后参与运算,这不就12吗。哎,所以呢,往这一一运算,这就是32是吧。不是,然后加完以后呢,付给这个变成12呢,然后32呢,又把12给覆盖掉了。32吧。30啊。你说对不对?肯定对啊,我就不测了。啊,错了,保换是吧。行,这是它,然后呢,如果实现自减一自减二,咱们讲了加了减呢,你就把这个加等于换成减等于啊类似的这个操作就可以了,是吧。就行好,这呢就我们说的叫赋值运算符,开发中呢就这样用。啊,后边呢,我们还有相应的一些地方能够见到他,到时候见,到时候我们再练一练就行。
24:00
OK。
我来说两句