x=x+1;x++;x+=1执行效率的顺序?执行完x的值及原因,值我们可以用jbulider测出来,可原因说不出来,各位大吓谈谈如何?

解决方案 »

  1.   

    x都是2
    效率:x++> x+=1> x=x+1
      

  2.   

    我定义了3个变量,分别为x,y,z,初始化为1,然后进行
    x=x+1;
    y+=1;
    z++;
    然后打印x,y,z你看一下结果是多少,x就是为1
      

  3.   

    难道用jbuiler执行的结果不误:
            public static void main(String[] args)
            {
              int j=1,m=1,n=1;
              j=j++;
              m+=1;
              n++;
              System.out.println(j+"PPP"+m+"PPP"+n);
            }
    结果:1PPP2PPP2
    最好试一样,别老与c++比较
      

  4.   

    我定义了3个变量,分别为x,y,z,初始化为1,然后进行
    x=x+1;
    y+=1;
    z++;
    然后打印x,y,z你看一下结果是多少,x就是为1
    为2
      

  5.   

    搂主是个鸟人,分不清x=x+1和x=x++
      

  6.   

    那么
    int i=1;
    i=i++;//执行结果i为1;
    这句在jvm中执行是什么过程,是第二个i的值符给第一个i后,第二个i在++,但是最后使用的是第一个i的值。
    本人认为第一个i和第二个i不是同一个索引。
    但是在    int j=1,i=1;
              i=j++;//i为1,j为2
    本人认为i=i++;这样的写法有点变态
    原因:  没有实际意义,//假如想表示i加一,就直接i++好了
            不过要钻牛角尖,这个问题就再好不过了
      

  7.   

    x++在java中叫postfix ++x叫prefix
    两者不同的是x++先value再operate,所以x++是1
      

  8.   

    呵呵,我记得x = x + 1;和 x += 1的效率是一样的。
      

  9.   

    编译时处理
    j++ 和j+=1是一样的
    j=j+1 给j创建了另一个副本
      

  10.   

    X++,是先赋值,后加1,如果X=1,Y=X++;x+=1;x=x+1;则运算结果分别是y=1,x=2;x=2;x=2;我记得这几种运算效率都是一样的,只是看这样写起来方便,就怎么写吧了!
      

  11.   

    i=i++;//执行结果i为1;这是因为,i++ 有点特殊,如果i=i++的话, 那他做完了赋值,后面的++
    是不会做的,也就是说如果 i=i++ 相当于i=i
      

  12.   

    如果你真的要 做i++的赋值,应该是用另外一个变量来赋值
    例如 j=i++ 而不是i=i++
      

  13.   

    i=i+1和i+=1一般来说一样,但要搞清楚,他们是有着质的不同
    具体可以从这个例子中体会到:
     short i=1;   
     i=i+1;  //有错
     i+=1;   // right i+1是整形的,符值给short型的i,便会报错,i=(short)i+1,这样也可以。
     i+=1;没错是应为+=是一个符号,他两端的两个数可以是不同类型的。