public class Test 
{
public static void main(String[] args) 
{
int i=1;
int j;
i=i++;
j=i;
System.out.println("i="+i+" j="+j);
}
}
//结果:i=1 j=1
那位讲一下是为什么?

解决方案 »

  1.   

    多看下基礎啊,i=i++,先賦值給i了,沒有相加操作
    你把i=++i;你就看到另外一個效果了!
      

  2.   

    public class Test 
    {
        public static void main(String[] args) 
        {
            int i=1;// i 赋默认值1
            int j;//j 在这里没有赋值,所以默认值是 0
            i=i++;//关键之处,i++ 虽然使得i的值加1,但是i++的值是1,该语句把i++的值1又赋给了i
            j=i;//上一句使得i的值变为1,所以j的值是1
            System.out.println("i="+i+" j="+j);
        }
    }
    //所以结果是:i=1 j=1
    关键之处是语句“i=i++;”,i 的值没有发生变化。(你怎么没有悬赏分啊,这样不好的。否则没几个人会回答的。)