class Test
{
   public static viod main(String args[])
   {
       int i = 11;
       i += i++;
       System.out.println(i);
   }
}

解决方案 »

  1.   

    viod---->void结果为什么是22呢
      

  2.   

    main为主线程函数
    System.out.println(i);为IO控制台输出,又不是main返回值,跟main的返回类型无关?比如说8:
    你想写些数据到文件
    public void writleDate(){
      FileReader fr = new FileReader(file);
      BufferedReader br = new BufferedReader(fr);
      String line =br.readLine();
      br.witleLine(line);
      //这里你读写数据,完全跟函数本身的类型无关嘛
    }
      

  3.   

    i += i++;等价于 i=i+(i++);i++是先参与运算再自加1 结果当然是22
    而++i就是先自加1再参与运算,如果是i=i+(++i)的话,结果就是23了
      

  4.   

    -------------------------------------------------------------
    i += i++;等价于 i=i+(i++);i++是先参与运算再自加1 结果当然是22
    而++i就是先自加1再参与运算,如果是i=i+(++i)的话,结果就是23了li_kewei() ( )
    -------------------------------------------------------------
    楼上的说的对。还有就是+,++的优先级的级别--------------------------------------------------------------------------------
    技术的提升在于不断的探讨和交流,欢迎大家加入《『Ben』J2EE交流群》QQ群:24711176
      

  5.   

    int i = 11;
           int j = 11;
           j = i++;
           i = i++;
           System.out.println(j+","+i);
           那谁能解释一下这个
      

  6.   

    j = i++; // j=11, i=12
            i = i++; // j=11, i=12; 运行完之后虽然 i++ 成为了13,但是这个13还没有来得及赋给i就被i=i给覆盖了。
      

  7.   

    i = i++;应该先执行i = i,在执行i++把?怎么会覆盖呢?
      

  8.   


    int i = 11;
    int j = 11;
    j = i++;
    int a = i++;
    System.out.println(j+","+i);
    则输出11,13,是不是说明   YidingHe(机枪兵)说的没错呢?
      

  9.   

    好吧我承认我在玩文字游戏,JVM里的细节我一点也不清楚。
      

  10.   

    i += i++;等价于 i=i+(i++);i++是先参与运算再自加1 结果是22
      

  11.   

    开始那道题目如果改为++i呢
    是23还是24呢
    class Test
    {
    public static viod main(String args[])
    {
    int i = 11;
    i = i+(++i);
    System.out.println(i);
    }
    }
    ++i先运算变成12 那么这个时候i已经是12了
    再和i相加不就变成24了么。为什么是23啊