java - java中后增量的行为

标签 java

<分区>

我知道这是一个愚蠢的例子,但我确实想知道它是如何工作的。
一般情况下,post-increment 给出旧值,之后给变量加1。

int a = 1;
a = a++;
System.out.println(a);

在第 3 行,它打印出“1”。为什么a保持不变?

据我了解, 在第 2 行,右侧将 1 赋值给变量 a。

后递增“++”将a加1。 不应该是 2 而不是 1 吗?

最佳答案

你可以这样想 a = a++;(在 Java 中):

int tmp = a;
a = a + 1;
a = tmp;

首先 a 的值被读取,然后 a 递增,然后 a 被赋值您首先阅读的值(value)。这是因为表达式 a++ 在增量之前采用 a 的值。然后,表达式 a = ____ 发生,将您在 a++ 期间获得的值分配给 a

关于java - java中后增量的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26319282/

相关文章:

java - 崩溃后 TCP 端口不可用

java - getBean() 方法在这里做什么?

java - RestEasy - 不支持的媒体类型异常 : Cannot consume content type

java - 通用编程、通用数据结构

Java 字典<String, List<Object>>

java - 创建 Java Web 服务客户端

java - 如何在java中找出强制门户URL

Java - 检测主监视器

java - 嵌入式 Java Applet 在 JSPX 页面中返回 NullPointerException

java - Spek 中存储了什么?