Java值加变量++

标签 java operators increment

考虑以下代码

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/

相关文章:

java - 无法从大型 Berkeley DB 文件中读取数据

c++ - 进行小于比较还是小于或等于比较更有效?

java - java中的x++和++x有区别吗?

c - C 中 i++ 和 (i)++ 的区别

java - 将数组的索引 0 留空以对应程序前端的实际值是否合适?

Java EE 和桌面应用程序

java - float 类构造函数

javascript - 加法运算符在 JavaScript 中不起作用

java - 运算符 += 和 =+ 有什么区别

java - 在同一循环中递增和递减的有效方法