00:04
还有一个事情是这样,我们知道在Java当中呢,等号表示是做赋值的。然后呢,我们还有呃,像加减乘除,还有百分号取余这样一些运算。那么这些运算符呢,和符值号是可以结合起来的,形成一个我们叫做复合赋值运算符,也就是说你原来有A等于A加六,那现在呢,我们就可以把它变成A加等于六。啊。但你如果说我原来是A等于B加六,那你这这事我们没办法是吧,是因为在这个负值号的右边啊,出现了左边的那个变量的话,那我们就可以去换写成这个样子,所以呢,A减等于六是意思是什么呢?就是A等于A减六啊然后呢,A乘等于六什么意思呢?那就是A等于A乘以六。那A除等于六呢,那就是A等于A除以六啊,就就这意思,挺简单的,当然里头有小陷阱,比方说假如我现在是A乘等于B加六。
01:13
那这个的意思呢,是说你其实得要认为在右边是有括号的,所以它其实是A等于A乘以B加六。你要把右边的都算完啊,然后再去和左边那个变量做一个结合,那么当然除也一样,A除等于这个,呃,B加六的话呢,那么当然也是A等于A除以啊,括号B加六,就算这边是个乘啊,我们知道它也是不一样的,对吧,因为。A除以B乘六和A除以B再除再去乘以六,那个结果是不同的啊,所以总是要把右边加上括号以后再换过来做运算,这是一件事情,叫做复合复值。还有一件事情是这样的,我们其实呢,经常会出现一种运算,比如说我们在循环里面,我们看见说I等于I加一。
02:04
那这样的一个运算,我们就可以把它改写成一个比较简单的形式,说I加加啊,I加加的意思就是I等于加I加一,那么因此呢,I加加啊,就是I等于I加一,除了把加加放在后面,我们还可以把加加放前面,有加加I,它的意思也是I等于I加E。那I加加和加加I有什么区别呢?有区别啊,这是符合运算对不对,因此呢,这个运算本身是有值的,对吧?这是运算符嘛,运算的结果就有值嘛,因此如果有一个人说我I要等于I加加。和A要等于加,加I,这个A的结果就会是不同的,假如说I原来等于六。那A等于I加加做完之后A要等于六,而I呢,得到了七。而A等于加,加I会等于七,而I呢,得到了。
03:04
还是气?也就是说,作为一个表达式。I加加,我们把这种情况呢叫做后缀,因为加加在后面对不对,加呃加加I呢叫做前缀,因为这时候的加加在前面,所以作为后缀的时候呢,我们A得到的是I原来的那个值,你看。这也比较好,形象的理解说,A就等于那个I的值,然后呢,I要去做加加,如果加加在前面的,那么A呢,就等于I加一的那个值。啊,也就是说不管前缀还是后缀,I本身都要加一,可是呢,作为整个表达式,你给别人的结果是不一样,当然我们不希望你像这样子来用啊,加加I和I加加这一对运算符有它的历史原因啊,是在70年代,还不是加法语言的时候,是C语言啊,首先提出来这样的一对运算符,和当时的历史背景有关系,那到了今天呢?
04:02
当然它可以很复杂,但是呢,我们希望你在使用这些语言成分的时候要谨小慎微,最好加加I和I加加这种形式只用在一个场合,就是单独使用,不要把它组合在别的运算当中去单独使用它是无害的。某些情况下也可以让我们的代码写得简单,比如说我们前面那个阶层的例子呢,我们这儿有。I等于I加一,我们就可以把它改写成I加加,我们这有factor等于factor乘以I,我们就可以把它改写成fact乘等于I。啊。能够妥善的利用这些运算符,当然可以使你的代码显得简洁一些,但是呢,这些运算符不是那么重要的,如果你呃对这些东西的理解上有困难的话,完全可以丢了它,没有问题。我们现在写程序的时候,不太在乎说你的源代码写得很简洁,我们更在乎的是说你的源代码写出来别人一看就能懂,不会引起误会,不会引起误解。
我来说两句