1. 程式人生 > >java i++和++i的區別

java i++和++i的區別

//i++和++i是有區別的,
//i++和++i都代表著i=i+1;
//i++是在一個先使用原值,然後加1,即先使用i的值,後讓i+1.
//++i則是先加1後使用,即先讓i+1後再使用i的新值.

class ijiajia
{
 public static void main(String[] args) 
 {
  System.out.println("Hello World!");
  int i=3;
  int count=(i++)+(i++)+(i++);//count=3+4+5,不信的話你可以用count=(i++)+(i++);這時會等於7
  System.out.println(i);//i=6
  System.out.println(count);//count=12
  int j=3;
  count=(++j)+(++j)+(++j);//count=4+5+6
  System.out.println(j);//j=6
  System.out.println(count);//count=15
 }
}
下面是i++ ++i的面試題:說出最終得出的數字。
  1. <pre name="code"class="java">publicstaticvoid main( String args[] ){  
  2.        int i=0;  
  3.        i=i++ + ++i;  
  4.        int j=0;  
  5.        j=++j + j++ + j++ + j++;  
  6.        int k=0;  
  7.        k=k++ + k++ + ++k;  
  8.        int h=0;  
  9.        h=++h + ++h;  
  10.        int p1=0,p2=0,q1=0,q2=0;  
  11.        q1=++p1;  
  12.        q2=p2++;  
  13.        System.out.println("i:"+i);  
  14.        System.out.println("j:"+j);  
  15.        System.out.println("k:"+k);  
  16.        System.out.println("h:"+h);  
  17.        System.out.println("p1:"+p1);  
  18.        System.out.println("p2:"+p2);  
  19.        System.out.println("q1:"+q1);  
  20.        System.out.println("q2:"
    +q2);  
  21.    }  

  1. publicclass ijiajia2{  
  2.    publicstaticvoid main( String args[] ){  
  3.     int j=0;  
  4.     for (int i = 0; i < 100; i++) {  
  5.         j=j++;  
  6.     }  
  7.     System.out.println(j);  
  8.    }  
  9. }  

解析:因為Java用了中間快取變數的機制,所以,j=j++;可以換成如下寫法:
temp=j;
j=j+1;
j=temp;
所以結果為0.