package com.neu.core;
public class Test02 {
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 = i++;
这样的表达式会被转化为:
temp = i;
i = i + 1;
j = temp;
代入表达式计算 j 所使用的实际上是 temp 这个中间变量而不是 i 本身,同理可知
j = ++i;
实际上的计算过程为
i = i + 1;
temp = i;
j = temp;
temp = i;