int i=1;
i=i++;
System.out.println(i);
为什么结果为1,我知道,i=i++是先赋值,可是后面不是有对i加1吗,结果不应为2?int i=1;
int i=(i++)+(i++);()的作用貌似起不了?

解决方案 »

  1.   

    没有人回答你哇。那我来说算了你需要记住2点。1) i=i++; 意味着 int temp = i++; ----> temp = 1; ----> i = 2; ----> i = temp; ----> i = 1; 2) never write something like i=i++, NEVER! some IDE will consider i=i++; as waste code!给分 20!
      

  2.   

    那换一种讲法
    int i=1; 
    i=i++; 
    1)首先先计算i++这个表达式的值, 他为1。比如i=1; j=i++; j=? ---> j=1;
    2)然后将i这个变量的值加1,得到i=2   
    3)最后把i++这个表达式的值1赋给变量i,所以i最后等于1   
    如果LZ你再不明白 我就无能为力了啊