00:04
那么我们呃,在Java当中呢,要做计算,呃,当然就要用到这些计算的符号,比如加减乘除啊什么的,我们有些什么样的运算符号可以用呢?这张表里面列出了我们目前遇到过的一些运算符,比如说啊加减乘除,当然乘法和除法。因为打字机上的符号的不同,所以呢,我们用的和平时数学用的符号不一样,乘法是用星号,除法用斜杠,可是呢,这个我想很多人啊,都是一看就明白的啊,不需要讲很多,那取余呢,会有点点特别,百分号表达取余,而不是百分之多少。取余的意思是说两个整数做除法,然后它的结果呢,是那个余数部分,比如说十对三取余。OK,那结果呢,就是一啊,而不是三,所以它是余数部分,叫做取余。在这张表里面列出来的我们叫做运算符的优先级。优先级的意思是说当一个式子里面有不同的运算符遇到一起的时候,谁先算的问题。比如说如果我们有一个式子,二加三乘以六。
01:08
那好吧,我们把它写成Java的式子,这个是星号,好。呃,其实我们平时在纸上写的时候,这个星号就这样就可以了啊,不需要再来一横,表现画的很复杂,这就是星号了,那在这个里头呢,其实我们可以看成是说我们有个运算符,然后呢,每个运算符都有两个。算子。那么这里的问题就谁先算?当然我们从数学我们知道,根据数学我们我们学过的知识,这一定是那个乘法先算,所以呢,我们会先去做这个。做完这个以后,我们有了一个结果呢,就是二加上3618,然后呢再来做这个。所以先做哪个后做哪个,这就叫做他的优先级。呃,优先级呢,可以很复杂,但是呢,也可以很简单。
02:01
基本上呢,我们的优先级的规则是说,让你在程序里面写出来的式子和你。正常的思维是一样的。比如说正常的思维我们都知道,乘法除法应该先算,OK,所以它也是这样,乘法除法应该先算,正常的思维我们都知道,如果我写了这样的一个式子。说A等于二乘三加六。那正常的思维我们都知道说这是一个负值,所以呢,应该是这部分先算。这部分算完之后再付给那个A。因此呢,这个事情一定是优先级很低的,赋值一定是优先级很低的,否则的话,你这样的式子就写不出来了,如果赋值的优先级很高。那你要想表达,我要把右边的这一串计算的结果付给左边这个变量,你就必须要加上这个括号,而这就显得很荒唐了,对不对?因此。
03:02
Java的运算符的优先级没什么特别的,就是正常的思维。你平时怎么想的?他就这样子的?当然,如果你真的记不住,如果你觉得心里没把握,哎呀,我实在记不住,到底乘法高还是加法高,乘法先算还是加法先算,OK。加括号吧,括号一定是有效的,虽然这肯定可能是一个比较笨的办法,但是括号一定是有效的手段。那在这些运算符里头呢,有几个有点点小特别的运算符哈。我们看到这里有单目取证和单目取负,它们是单目的运算符,单目的意思是说这个运算当中只有一个操作数啊,这叫做单目的运算符。比如说我们。要想做A乘以负B啊,A乘以负B这里呢,这个符号,这个符号就是一个单目的运算符,那么我们在加法当中呢,所有的单目的运算符都是优先级最高的,因此在这里头。
04:01
这个负B会先算啊,然后再去和A存起来,但是你仔细想一下,这也没有特别的,对吧,这也是我们平时在生活当中做这些运算的基本次序,所以。你按照常理去想它就对了,在这张表里面,我们还有一个栏目叫做结合律,结合关系啊,我们看到绝大多数的运算符的结合关系都是自左向右,可是呢,负值是自右向左的,什么意思呢?在这行里头呢?这一句啊,我们做的是等于A等于B等于三加C,那我们知道实际上呢,它应该是先做了三加C的运算。做完三加C的运算以后,再把它的值呢付给B。然后再把B的值呢付给A,最后再把A的值呢付给这个result。也就是说这里有三个赋值运算符对不对?这三个辅值运算符的顺序是123依次从右向左啊,这叫做结合关系,结合关系指的就是当我遇到相同优先级的东西的时候,这些运算符的时候到底是从左往右算还是从右往左算?那么他告诉你说腹直呢,是从右往左算,你一开始听起来,哇,这好神奇啊,怎么还有从右往左算的东西,但是。
05:14
把它放在这个式子那里,你就会觉得这不就是我们平时就会这么想的吗?所以也没什么大不了的是不是?
我来说两句