int i=0;
i=i++;
System.out.print("i="+i);
为什么得到的结果是i=0;?求解释

解决方案 »

  1.   

    int i=0;
    i=++i;
    System.out.print("i="+i);楼主试试这个应该就懂了
    运算符优先级问题
    ++i 先加再赋值
    i++ 先赋值再加
      

  2.   

    i=0;
    i=i++;
    输出
    等同于
    i=0;
    i=i;
    i++;
    输出i;
      

  3.   

    http://www.ticmy.com/?p=43
      

  4.   

    int i=0;
    i=i++;
    System.out.println(i)//0
    因为后++是先赋值i,然后再进行++操作;
    int i=0;
    i=++i;
    System.out.println(i)//1
    因为前++是先赋值i,然后再进行赋值操作;
    前——  、后——同理;
    望采纳!!
      

  5.   

    i=i++;
    解释为:
    i=i;
    i++;
    ============================================================================================
    i=++i;
    解释为:
    i++;
    i=i;
      

  6.   

    i= i++;
    这个本来就是不需要的,应该使用
    i++;
    这样就避免了 = 和++ 谁优先的问题。
    也可以使用
     i += 1;
    又如: i = i*2;
    应该表示为 i *= 2;
      

  7.   

    直接i++就好了,不用写成i=i++了
      

  8.   

    其实为什么出现这样的结果,我也觉得奇怪,所以百度了一下,你可以去看看。
    http://wenku.baidu.com/view/77341e60f5335a8102d22024.html
      

  9.   

    int i=0;
    i=i++;
    System.out.print("i="+i);首先你把 i++作为一个整体的表达式看待 i++=0  
    因为后加加在对i赋值后才++ , 所以输出的i是=0你可以试下后加加
    int i=0;
    i=++i;
    这个就是先对i进行++操作,是i变成1,然后对i赋值,
    所以输出时 i=1
      

  10.   

    可以这样去理解的,你可以将 i = i++; 拆分成两个语句
    i = i++;   <=>   i = i; i+1;
    这你就明白为什么i输出的会是0了
      

  11.   

    在java有两种自增,一个是++i;还有个是i++。区别就是前一个是先加再计算,后一个是先计算后加
      

  12.   

    i=0;
    i=i;i上面说了是0,所以这里还是0;
    i++;这里是增1,不过没赋值,打印的是上面的i
      

  13.   


    public class Test { public static void main(String[] args) {
    int i = 0;
    i = i++;//这样输出的是赋值后的i
    i++;//如果是这样写的话,输出的是1
    System.out.println(i);
    }}
      

  14.   

    int i=0;
     i=i++;
     System.out.print("i="+i);
    我也觉得结果有点奇怪,大家看下
    eclipse c++  结果  1
    eclipse jee   结果  1
    vc++          结果   1
    linux gcc      结果 1
    linux java     结果  0
      

  15.   

    能解释下不?http://www.ticmy.com/?p=43和这网址里的讲法是一个意思,只是用图来表示,你可以对照起来看
      

  16.   

    能解释下不?当你把i=i++改成i=++1的时候 就有了欲期的结果。这证明 i++和处理++i的不用处
    一个是运行前先加,一个一运行后加
    怎么实现运行后加的效果呢?
    1. 把i复制一份 i1  则 i=i1=0
    2.然后把i+1      i=1 , i1=0
    3.其它地方运算时用i1来   i=i1
    4.所以 i最后还是0