请写出下面的程序片段是否有错误,如果没有运行结果,如果有,请写出原因。
下面的程序片段是否有错误,如果没有请写出运行结果及原因,如果有,请写出原因。
public static void cycleTest(){
int n =0;
for(int i=0;i<5;i++)
n=n++;
System.out.println("n="+n);
}
参考答案:编译没有错误,可以正常运行,结果是n=0
因为n=n++的执行顺序是
1.先取出n的值放在缓存里面(刚开始是n=0)
2.执行n++(得n=1)
3.把缓存里面得n值取出,进行赋值运算,就是n=缓存值(即n=0)
所以一个循环下来n的值还是0,每个循环都一样,最后就是0.如果想得到5,可以把n=n++换成n=n+1