Inter1-关于i++和++i

Posted Java钰火

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Inter1-关于i++和++i相关的知识,希望对你有一定的参考价值。

Q:关于i++和++i计算以下公式的结果

```
public static void main(String[] args) {
int i = 1;
System.out.println("i+++i++: " + (i+++i++));
System.out.println("i: " + (i));
System.out.println("i+++++i: " + ((i++)+(++i)));
System.out.println("i: " + (i));
System.out.println("i+++i+++i++: " + (i+++i+++i++));
System.out.println("i: " + (i));
}
执行结果:
i+++i++: 3
i: 3
i+++++i: 8
i: 5
i+++i+++i++: 18
i: 8
```
A:解释如下

i++ 可以理解为
```
// 保存初始值
int temp = i;
// 做自增操作
i = i + 1;
// 返回初始值
return temp;
```

++i可以理解为
```
// 做自增操作
i = i + 1;
// 返回自增后的值
return i;
```

所以上述执行代码中

i+++i++ 的解释为
----------------
1.先算前面i++,根据上面解释,返回原来的i,即为1

2.再计算后面的i++,而此时的i已经为2,根据上面的解释解释,返回2

3.最后为1 + 2 = 3,结果为3,而此时的i为3


i+++++i 的解释为
----------------
1.此时i为3,先算前面的i++,根据上面解释,返回原来的i,即为3

2.再计算++i,此时的i为4,所以通过++i计算后为5,i也为5

3.最后为3 + 5 = 8,结果为8,而此时i为5


i+++i+++i++ 的解释为
----------------
1.此时i为5,先算前面的i++,根据上面的解释,返回原来的i,即为5,i变为6

2.计算中间的i++,此时i为6,返回原来的i,即为6,i变为7

3.计算后面的i++,此时i为7,返回原来的i,即为7,i变为8

4.最后为5 + 6 + 7 = 18,结果为18,i为8


进Github查询代码

以上是关于Inter1-关于i++和++i的主要内容,如果未能解决你的问题,请参考以下文章

关于Java 中的 i += 1 和 i = i + 1 问题

关于++i,--i,i++,i--

关于 i++ 与 ++i

关于扩展运算符中i++和++i,以及基本类型和引用类型的综合应用

关于Java中for循环的i++和++i区别

js入门关于js‘i++’‘++i’和‘i--’‘--i’计算的问题