/**
* 计算i++
*/
public void countDemo(){
int num = 0;
for(int i = 0 ; i < 10 ; i ++){
num = num ++;
}
System.out.print(num + "\n");//输出0
}
今天偶然遇到了这么一道面试题,最后打出来的结果是0;经过请教,总结如下:
num++ 时,先使用,后自增。jvm会先把num的值赋给一个临时变量,返回临时变量的值,再加1。
验证如下:
public void sysDemo(){
int x = 0;
System.out.print(x++ + "\n");//打出结果是 0
System.out.print(x); //注意:但x的值是变为了1
}
故刚开始的理解如下:
/**
* 计算i++
*/
public void countDemo(){
int num = 0;
for(int i = 0 ; i < 10 ; i ++){
num = num ++;// num ++ 为0,赋值给=左边故 num = 0。再循环还是重复一个步骤
}
System.out.print(num + "\n");//输出0
}