zl程序教程

您现在的位置是:首页 >  后端

当前栏目

最简单的方法搞懂java自增(++)和自减(--)(学不会来打我)

JAVA方法 简单 -- 不会 自增 搞懂 ++
2023-09-11 14:22:30 时间

sum = c++ + ++c - --d - ++d +1 +c–

我们都知道,在面试或者看别人代码的时候难免会看到这种i++,++i之类的用法,恶心程度可想而知。道理大家都懂,无非就是+1或者-1,但是混在一起就很迷糊,废话不多说,直接看题↑。题目就是标题,问的是sum的值。
这题的条件是这样的:

大家不要一上来就运行代码看答案啊!主要是理解方法。

package operator;

public class operatorDemo1 {
    public static void main(String[] args) {
        int c = 10;
        int d = 5;
        int sum = c++ + ++c - --d - ++d +1 +c--;

        System.out.println(c);
        System.out.println(d);
        System.out.println(sum);

    }
}

做这之前,记住一个方法就行,哪个在前面就哪个先!

先记录每一次变化的值,以后遇到这种问题都能迎刃而解!
//第一次(最初)
c = 10
d = 5
sum = c++ + ++c - --d - ++d +1 +c-- (不知道)

(这个大家可以用草稿纸写出来,方便理解,也可以自己搞个记事本)
1、先看sum的第一个,c++,心里默念:哪个在前面就哪个先!。c在前面,所以是先用,再加+。各个值变化记录,每一步(变化)都记下来:

//c从10变成了11
c = 10 11
d = 5
//注意c++是c在前面,所以直接用c(c的初始值是10,所以直接用),c的值再++变成了11。sum就变成了下面:
sum = 10 +++c - --d - ++d +1 +c–

2、继续往下看,到++c 心里默念:哪个在前面就哪个先!。++在前面,所以是先加+,再用。记录变化:

//++c,所以c先加1,变成12。然后再用,这就是所谓的++c,++在前,先加再用!
c = 10 11 12
d=5
//++c,++在前,先加(11+1=12),再用(12):
sum = 10 + 12 - --d - ++d +1 +c–

3、接着,到- -d。心里默念:哪个在前面就哪个先!。 - - 在前,所以是先减-,再用。记录变化:

c = 10 11 12
//- -d, - -在前,所以先减,5-1 = 4。减完再给sum用。
d = 5 4
//d减完变成4
sum = 10 + 12 - 4 - ++d +1 + c- -

4、继续看后面的++d。++在前,所以是先加+,再用

c = 10 11 12
//++d,++在前,所以先加(4+1=5),再用。
d =5 4 5
sum = 10 + 12 - 4 - 5 + 1 + c- -

5、最后一个c - -。再次在心里想着:哪个在前面就哪个先!。c - -,c在前面,所以先用c,然后c再减。

//先用原来的12,给sum。然后再减,变成11
c = 10 11 12 11
d = 5 4 5
//c - - ,c在前面,所以是先用(原来的12),再减(12-1 = 11)
sum = 10 + 12 - 4 - 5 + 1 + 12

答案就算出来了,c = 11. d = 5. sum = 26。
这个时候再去运行程序:
在这里插入图片描述
怎么样,学废了吗?