int i = 0;
i = i++;
System.out.println(i);
//结果输出0;
按照++放前 先取后算的原则,先取i的值0重新赋值给i,再执行自加1的运算,那结果应该是1啊,为什么还是0

解决方案 »

  1.   

    这个问题貌似解释过很多次了。i = i++; 总体上分为两个大步骤:
      1、计算右侧表达式;
      2、赋值操作;
    而i++是属于第一个大步骤之内的。你可以再试试看:
      i = i++ + i++;
    应该能理解清楚点。
      

  2.   


    又出问题了!!!
    int m = 0;
    for(int i=0;i<100;i++){
        m = m++ + m++;
    }
    System.out.println(m);
    这段代码运行结果为-1,求解啊
      

  3.   

    求啥解啊,你这个算法相当于每次×2+1,显然是溢出了int m = 0;
    for(int i=0;i<100;i++){
      System.out.println(m); // 注意看看这个数值,很快就溢出了
      m = m++ + m++;
    }