请问为什么以下代码输出的 i 是 0 ,而不是 1 呢
public static void main(String[] args) {
int i = 0;
i = i++;
System.out.println(i);
请问为什么以下代码输出的 i 是 0 ,而不是 1 呢
public static void main(String[] args) {
int i = 0;
i = i++;
System.out.println(i);
因为 i++ 这个表达式的含义是,先返回 i 的原始值,再将 i 的值加 1。
所以在上面的代码中,先将 i 的值 0 赋给了 i ,然后再将 i 的值加 1。所以最终的输出结果是 0。
如果改成 i = ++i;,那么最终的输出结果将是 1。因为先将 i 加 1,再将加完 1 之后的值赋给了 i。