java i++和++i的區別
阿新 • • 發佈:2018-12-26
//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的面試題:說出最終得出的數字。
- <pre name="code"class="java">publicstaticvoid main( String args[] ){
- int i=0;
- i=i++ + ++i;
- int j=0;
- j=++j + j++ + j++ + j++;
- int k=0;
- k=k++ + k++ + ++k;
- int h=0;
- h=++h + ++h;
- int p1=0,p2=0,q1=0,q2=0;
- q1=++p1;
- q2=p2++;
- System.out.println("i:"+i);
- System.out.println("j:"+j);
- System.out.println("k:"+k);
- System.out.println("h:"+h);
- System.out.println("p1:"+p1);
- System.out.println("p2:"+p2);
- System.out.println("q1:"+q1);
- System.out.println("q2:"
- }
- publicclass ijiajia2{
- publicstaticvoid main( String args[] ){
- int j=0;
- for (int i = 0; i < 100; i++) {
- j=j++;
- }
- System.out.println(j);
- }
- }
解析:因為Java用了中間快取變數的機制,所以,j=j++;可以換成如下寫法:
temp=j;
j=j+1;
j=temp;
所以結果為0.