1. 程式人生 > >java的++i和i++的分析

java的++i和i++的分析

關於自增自減,先來一道題,大家嘗試著做一下:

1     public static void main(String[] args) {
2         
3         int a=2;
4         int b=a++;
5         int c=--a;
6         System.out.println("a:"+a+",b:"+b+",c:"+c);
7     }

答案在這裡:
a:2,b:2,c:2
看完答案,不知道大家有沒有什麼感覺,再來一道吧:

1     public static void main(String[] args) {
2 3 int i=0; 4 for(int j=0;j<10;j++){ 5 i=i++; 6 } 7 System.out.println("i:"+i); 8 }

下面是答案:
i:0
猜對了嗎,如果沒猜對,好好想想,你一定會猜對的,什麼?你猜對了,
大神啊,那麼請大神接招:

1     public static void main(String[] args) {
2         
3         int i=5;
4         int j=(i++)+(++i)+(i--)+(--i);
5 System.out.println("i:"+i+",j:"+j); 6 }

答案來也:
i:5,j:24
怎麼樣,有沒有什麼感覺,彆著急,下面是分析:

1         //i++==> i=6;j=5
2         //++i==> i=7;j=7
3         //c--==> i=6;j=7
4         //--d==> i=5;j=5
5         //5+7+7+5=24
6         //6+7+6+5=24

但是有兩個24,結果到底是哪一個呢,別急,看完下面的題你就知道答案了:

1     public
static void main(String[] args) { 2 3 int i=5; 4 int j=(i++)+(++i); 5 System.out.println("i:"+i+",j:"+j); 6 }

這是正確答案:
i:7,j:12
猜對了嗎,看我的分析:

1         //i++==> i=6;j=5
2         //++i==> i=7;j=7
3         //6+7=13
4         //5+7=12

明白了吧 >O.O<
這篇文章說是分析,但其實只是給大家出了幾道題,如果大家有什麼想法,可以給我留言哦。