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

i++和++i 和i+1的區別

大家對i++和++i和i+1肯定很熟悉,但是不細細理解其中原因,就很難理解為什麼(i+1)和(i++)有時會差這麼多,尤其在遞迴中應用時。

相信大家對i++和++i的區別肯定很瞭解,前者是先加後傳遞結果,而後者剛好相反,是先傳遞結果後加。但是,i+1則沒有傳遞這個過程!加過去就結束了,後面i原來是多少還是多少!這點在遞迴中的時候尤其要注意!!!

測試程式碼:

第一種:i+1      結論: 1 2 3 4 5

public class test {
	public static void main(String[] args) {
		for(int i=0; i<5; i++){
			aa(i+1);                     // 注意這行的改變!
		}
	}
	
	public static void aa(int i){
		System.out.print(i + " ");
	}
}
第二種: i++    結論:0 2 4
public class test {
	public static void main(String[] args) {
		for(int i=0; i<5; i++){
			aa(i++);             //注意這行的改變
		}
	}
	
	public static void aa(int i){
		System.out.print(i + " ");
	}
}

第三種: ++i    結論: 1 3 5
public class test {
	public static void main(String[] args) {
		for(int i=0; i<5; i++){
			aa(++i);             //注意這行的改變
		}
	}
	
	public static void aa(int i){
		System.out.print(i + " ");
	}
}