public static void intTest(){
        int x = 5;
        x = x++;
        System.out.println(x);
  }
x++;表达试的值是5在自身加1在把表达试的值赋予X所以是5
 
public static void intTest(){
        int x = 5;        x++;
        System.out.println(x);
    }这个是直接加1,x值变为6

解决方案 »

  1.   

        public static void intTest(){
            int x = 5;
            x = x++;
            x++;
            System.out.println(x);
        }知道上面两个这个不难理解
      

  2.   


    #include <stdlib.h>
    #include <stdio.h>
    int main(){
        int x=5;
        x=x++;   
        printf("%d\n",x);
        system("pause");
        return 0;
    }
    c/c++是先把x++表达试的值给x在做x++操作.而java是先x自身加1 在把表达试的值给x这样x还是5
      

  3.   

    只知道java的,前面3个中第2,3个很好理解。说说第1个。
    int x = 5 ;
    x = x++;
    先执行x++,然后在赋值。x++等效于 x=(x+1) ,但是x++表达式的值还是5。
    然后执行x = x++ ,应为这里x++这个表达式值是5,所以x为5。另外说一下++x ,等效于 x = x+1 ,但是这里++x表达式的值是6。
      

  4.   

    代码1 Java code
        public static void intTest(){
            int x = 5;
            x = x++;
            System.out.println(x);
        }
    x++;表达式的值是自身先用,然后才++.