日期:2014-05-20  浏览次数:20713 次

这个也能通过编译,怎么解释

int a[] = {1,2,3};
int sum =0; 
for(int i=0; i<3; i++)
    sum =+ i; //这里不是 +=
System.out.println(sum);//结果为2?

------解决方案--------------------
编译时没有问题、但是执行结果和"+="是不一样的。
在这里"+"实际上没有起作用,就相当于"sum = i",就是每次都给sum一个新的值。

至于为什么是2?
因为sum = i、而i的值是0,1,2,最后一次是将2复制给sum的