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

解决方案 »

  1.   

    编译时没有问题、但是执行结果和"+="是不一样的。
    在这里"+"实际上没有起作用,就相当于"sum = i",就是每次都给sum一个新的值。至于为什么是2?
    因为sum = i、而i的值是0,1,2,最后一次是将2复制给sum的
      

  2.   

    sum=+i,相当于sum = i++,这是先运算后增加
    for(int i=0; i<3; i++)    
     sum =+ i时;相当于:sum = sum+i;i=i+1;
    循环一次:此时i=0,先运算后sum=0,然后i自增加(i++),i=1;到for循环中,i自增加,i=2
    循环二次:此时i=2,先运算后sum=2,然后i自增加(i++),i=3;到for循环中,i自增加,i=4
    结束循环;输出结果是:2sum+=i,相当于sum = ++i,这是先增加后运算
    for(int i=0; i<3; i++)    
     sum =+ i时;相当于sum=sum+i;输出结果:3