1. 程式人生 > 程式設計 >java中的前++和後++的區別示例程式碼詳解

java中的前++和後++的區別示例程式碼詳解

java中的前加加++和後加加++,有很多人搞的很暈,不太明白!今天我舉幾個例子說明下前++和後++的區別!

其實大家只要記住一句話就可以了,前++是先自加再使用而後++是先使用再自加!

前++和後++總結:其實大家只要記住一句話就可以了,前++是先自加再使用而後++是先使用再自加!

請大家看下面的例子就明白了!

public class Test {
	
	public static void main(String[] args) {
		
		//測試,前加加和後加加
		//前++和後++總結:其實大家只要記住一句話就可以了,前++是先自加再使用而後++是先使用再自加!
		int age = 6;
		//先自加,再使用(age先自加1,然後再列印age=7,此時age的值在記憶體中是7)
		System.out.println("age=" + ++age);
		//先使用,再自加(此時age的值在記憶體中是7,先列印age=7,然後age再自加1,所以此時列印age=7,但是其實此時age的值在記憶體中已經是8了)
		System.out.println("age=" + age++);
		//此時打印出來age=8
		System.out.println("age=" + age);
		//先自加,再使用(此時age在記憶體中的值是8,先自加1,age的值在記憶體中就變成了9,然後再列印age,所以此時打印出9)
		System.out.println(++age);
		//先使用,再自加(此時age在記憶體中的值是9,先打印出9,然後age再自加1,自加完後,此時age在記憶體中的值是10)
		System.out.println(age++);
		//此時列印age是10
		System.out.println(age);
 
int index = 0;
  String[] names = {"令狐沖","張無忌","韋小寶","楊過","段譽","喬峰"};
//  System.out.println(names[index++]); //打印出令狐沖
//  System.out.println(names[index]);  //打印出張無忌 
    //以上兩行程式碼註釋掉,那麼以下兩行程式碼,就會打印出張無忌
    //如果以上兩行程式碼沒有註釋掉,那麼以下兩行程式碼,就會打印出韋小寶
System.out.println(names[++index]); //打印出張無忌
  System.out.println(names[index]);  //打印出張無忌
}
}

java中的前++和後++的區別示例程式碼詳解

java中的前++和後++的區別示例程式碼詳解

java中的前++和後++的區別示例程式碼詳解

PS:下面看下Java中i++和++i的區別

  • 說來慚愧,從事開發工作也有一年時間了,然而在今天的一個業務邏輯裡突然發現原來我對i++和++i都沒有理解,或者說我之前的理解是錯誤的。這對於一個有追求的程式猿是不能容忍的。知道之後,迅速惡補學習,現在算是徹底的理解了。
  • 這篇文章可能對於大神沒什麼用,畢竟技術層次不夠,大神追求的都是思想層面的東西。但對於一些初學者的話還是有一些用的,或者有跟我一樣的已經入行一些時間了,但對這個理解模糊的(IT界估計也就我一個了 ~~捂臉!)都可以參閱學習,我寫的比較詳細,相信只要你看,就絕對會有收穫

1,i++ 和++i


在區分這兩個之前,我們先來了解一下它們的運算規則

int i=1,a=0;

* i++ 先賦值在運算,例如 a=i++,先賦值a=i,後運算i=i+1,所以結果是a==1
* ++i 先運算在賦值,例如 a=++i,先運算i=i+1,後賦值a=i,所以結果是a==2

看下面程式執行結果,有圖有真相:

public class Test3 {
	public static void main(String[] args) {
		int i=1,a=0;
		System.out.println("a=i++===> "+(a=i++));//1
		//System.out.println("a=++i===> "+(a=++i));//2
	}

}

這裡寫圖片描述
這裡寫圖片描述

這裡算是基本瞭解了,那麼我們在來一個練習讓你更加的理解它們之間的關係

public class Test3 {
	public static void main(String[] args) {	
		int y=0;	
		int i =0;
		y=++y;
		y=++y;
		y=++y;
		y=++y;
		y=++y;
		System.out.println("y="+y);
		i=i++;
		i=i++;
		i=i++;
		i=i++;
		i=i++;
		System.out.println("i="+i);
		
	}

}

附上結果

這裡寫圖片描述

是不是感覺有點轉過轉彎來,如果有這種感覺,那麼恭喜你(找到跟我之前症狀相同的了,哈哈),你也得好好理解理解了。下來是我新增上詳細註釋的程式碼。

public class Test3 {
	public static void main(String[] args) {
		int y=0;	
		//注意"="是賦值,"=="才是相等
		//這裡的y=++y 是先運算在賦值,先運算++y完了後y的值是1,然後在賦值給原來等於0的y
		y=++y;// y==0,++y==y+1; 結果y=++y == y+1 == 0+1 ==1
		y=++y;// y==1,++y==y+1; 結果y=++y == y+1 == 1+1 ==2
		y=++y;// y==2,++y==y+1; 結果y=++y == y+1 == 2+1 ==3
		y=++y;// y==3,++y==y+1; 結果y=++y == y+1 == 3+1 ==4
		y=++y;// y==4,++y==y+1; 結果y=++y == y+1 == 4+1 ==5
		System.out.println("y="+y);//5
		int i =0;
		// i==0,i++==0; 結果i=i++ == (記住先賦值後運算)i=i,i=i+1(由於是i++運算這裡我們輸出的i只取先賦值的結果也就是i=i)
		i=i++;
		i=i++;
		i=i++;
		i=i++;
		i=i++;
		System.out.println("i="+i);//0
		System.out.println("================");//1
		
		
	}

}

總結

到此這篇關於java中的前++和後++的區別示例程式碼詳解的文章就介紹到這了,更多相關java 前++和後++內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!