java
class Test {
public static void main(String[] args) {
int j = 0;
for (int i = 0; i < 100; i++) {
j = j++;
}
System.out.println(j);
}
}
输出:0
详细地看一下自增操作和赋值操作的组合。特定语句是:
java
j = j++;
这个语句的执行可以分解为以下步骤:
后缀自增操作:当我们看到 j++,它是一个后缀自增。这意味着首先返回 j 的当前值,然后 j 的值自增。
赋值操作:我们有 j = ...。这是一个赋值操作,将等号右边的值赋给 j。
现在,结合这两个操作,考虑 j 的初始值为 0:
j++ 先返回 0(因为它是后缀自增),然后 j 的值增加到 1。
但是,由于赋值操作,返回的 0 立即被赋予 j,这会撤销前面的自增操作。所以,j 的值又变回 0。
这样的过程在每次循环中都会发生,所以无论循环执行多少次,j 的值都始终保持为 0。