你真的懂了 i++ 和 ++i了嘛?

做个题目:

第一题:

int i = 1;

i = ++i;

第二题:

int i = 1;

i = i++;

请问:第一题和第二题最后 i = ?

正确答案:2,1

一,基础知识

image-20220619143142351

二,解答上题为什么?

image-20220522160013390

三,总结

主要就是怎么理解运算和取值的顺序还有到底是怎么操作的这里。

运算是直接 变量的值变

取值是先取在数栈中,然后在赋给变量。注意下就行。

这里大家不要背下来哈,要理解,也不要根据答案推结果。

四,补充

最近在刷算法的时候经常去在方法里面用这个自增自减。

理解的更加深刻了,就是。

==a++的本质就是先让a的值去干活,干好了之后才会去自增。==

==这里的先干活可以是先参加运算事里的运算,也可以是作为参数传入一个方法。==

自增自减的一个逻辑是这样的。

image-20230331220259011

我们把=左边或者函数的括号当成第三个栈就是了。

这样就所有的都 solve 了

下面是代码验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class TestAgain {
//测试++
//a++,就是在a的值被使用完成之后才去自增。这个使用完成可以是运算式,也可以式方法()
public static void main(String[] args){
int a = 0;
System.out.println(a);//0
System.out.println(a++);//0
//这个地方就是说明:a是先给值给打印函数,打印出来之后才去自增的。
System.out.println(a);//1

}
public static int add(int a){
return a++;
}
}