对于 “++ — ”
我的问题是 为什么 “++ — ” 在变量前后会出现运算区别
int i = 1; i = ++i; System.out.println(i); // 2 //当“++”在变量的前面 “++i” 则先和变量进行运算“++i”再赋值“i = ++i” int i = 1; i = i++; System.out.println(i); // 1 //当“++”在变量的后面“i++” 则 先赋值“i=i ” 再进行变量的运算“i++”
我猜想 : 当“++” 在变量前面时 首先识别的是“ i = ++”
此时 i = ++ 读为: 将 ++ 赋值给 i
但是 ++ 本身并没有值 也就没有数据类型 本身没有值如何赋予给i呢
所以继续向后读取 读取到“ i = ++i” 则有了值 也可以运行
此时 i = ++i 读为: 将 ++i 赋值给 i
同理: 当“++” 在变量后面时 首先识别“ i = i ” 可以识别
此时 i = i 读为 : 将 后面一个“i” 的值 赋值给 前面一个”i”
可以赋值 赋值过后 还剩余的代码就是 “++”
但是因为已经赋值了 后面输出语句(System.out.println(i))输出的变量i 已经有了结果
那么 此时 i++ 已经对于现在这次的运算不造成影响了
但是 这种理解是建立在我只学习了几天的基础上 猜的
有很多更加正确的理解 例如: 程序在JVM中的运行原理 ,内存图等等 我都还没学
学过之后会将更加正确的理解附在下面
有好心的大佬解答 就先说声感谢啦!! 同志们 冲