public class Test {     public static void main(String[] args) {         int i = 0; 
        i = i++; 
        System.out.println(i);     } }
 这段代码的输出结果是0,如果将第6行换成int a = i++;,输出结果当然是1,这又是为什么?

解决方案 »

  1.   

      i = i++; 
    相当于
    int temp=i;
    i=i+1;
    i=temp;
    所以i是0
    知道写程序不要这么写就够了.
      

  2.   

    推荐<java Puzzlers>这本书,对于对付这种面试题很轻松.
      

  3.   

      public class Test {
        public static void main(String[] args) {         int i = 0; 
            int a = i++; 
            System.out.println(i); 
            System.out.println(a);
        } 
        }
    看这个就知道 
      

  4.   

    为什么这个问题在java版出现那么多次啊,几乎两三天就有新贴问这个.
      

  5.   

    i++
    就等价于i=i;i=i+1;
    ++i
    就等价于i=i+1;
    i++是先赋值在加
    ++i 是先++在赋值;
      

  6.   

    文字配图解释,很详细,希望你看了有用
    http://www.bitscn.com/java/base/200605/20350.html
      

  7.   

    i++;
    表示先赋值后值加。。
    所以当然等于零咯。。
    这就等于一了哦!!
     class Test {     public static void main(String[] args) {         int i = 0; 
            i = ++i; 
            System.out.println(i);     } } 
      

  8.   

    i++就可以了
    不要i = i++;了 呵呵
      

  9.   

    啊 又是這個問題...JAVA不同于C 你和C比較下就知道了。