来自Java程序员面试宝典
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++可换成如下写法:
temp = j;
j = j+1;
j = temp;
这道题目告诉我们,用i++参与计算时,要好好考虑!
再看这道题:
public static void main(String[]args){
int i =0;
int sum = i++ + i++;
System.out.println(sum);
}
输出为 1。
先执行i++,结果为0,i=1;然后再执行i++,结果为1,i=2
sum = 0 + 1 = 1;