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;