考虑以下代码
int val1 = 3;
val1++;
int val2 = val1++;
System.out.println(val1);
System.out.println(val2);
Val1 值 = 5; Val2 值 = 4;
为什么 Val1 的值为“5”?
据我了解,它应该是 4,因为: 在第 1 行,它被赋值为 3,在第 2 行,通过 val1++ 添加 1,导致 val1 为 4。
Val2 是 val1 的值,因此是 4,加上 1,即 5
无论编译器将 val1 的值设置为 5,将 val2 的值设置为 4,我在这里不理解或遗漏了什么?
我意识到 val1++ 被第二次使用,但它被分配给 val2,并且不应该影响 val1s 的值,还是我错了?
最佳答案
a++
称为后缀。
将1
添加到a
,返回旧值。
++a
被称为前缀。
将1
添加到a
,返回新值。
so int val2 = val1++;
将返回旧值(4)
并且仍然向 val1 添加 1
关于Java值加变量++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30069410/