(--)和(++)在值的前面和後面的區別

--(也就是-1)
這裏使用a,b解釋
<>1:b = a--
這裏是先將a值賦給b之後,然後a進行自身的--
<>2:b = --a
這裏是a值先將自己--,讓後將值賦給b

++(也就是+1)
這裏使用x,y解釋
<>1:x = ++y
這裏是先進行y++之後讓後再進行賦值y--(賦值)>b
<>2:x = y++
這裏是先將y值賦給x.然後進行自身的++

下面有一道例題:


package com.csdn.jdbcdemo.date2017_11_14;

/**
 * --和++的在前和在後的區別卻別
 * @author 89155
 *
 */
public class AddMinusDemo {
	public static void main(String[] args) {
		
		//i--
		Text();
		
		//--i
		Text2();
		
		//i++
		Text3();
		
		//++i
		Text4();
		
		//面試題
		Text5();
		
	
}
	
	//i--
	private static void Text() {
		int i = 4 ;
		int j = 3;
		 j = i--;
		 System.out.println("i的值是:"+i);//3
		 System.out.println("j的值是:"+j);//4
		 System.out.println("--------------");
	}

	//--i
	private static void Text2() {
		int i = 3 ;
		int j = 4;
		 j = --i;
		 System.out.println("i的值是:"+i);//2
		 System.out.println("j的值是:"+j);//2
		 System.out.println("--------------");
	}

	//i++
	private static void Text3() {
		int i = 1 ;
		int j = 1;
		 j = i++;
		 System.out.println("i的值是:"+i);//2
		 System.out.println("j的值是:"+j);//1
		 System.out.println("--------------");
	}
	
	//++i
	private static void Text4() {
		int i = 1 ;
		int j = 1;
		 j = ++i;
		 System.out.println("i的值是:"+i);//2
		 System.out.println("j的值是:"+j);//2	
	}
	
	//面試題
	private static void Text5() {
		int i = 2;
		int j = 1;
		if(i == (++j) && (j++)==i){
			i+=j;
		}else{
			i+=j;
		}
		/*
		 * 最後輸入的結果到到底是4?還是5?
		 * 很多人存在疑問
		 * 先說&&左邊
		 * i = 2   j = 2這個沒有多少疑問
		 * 可以理解爲加入引入第三個變量理解
		 * (++j) -->可以理解爲 k=++j;所以爲j=2
		 * 
		 * &&讓後就是右邊了
		 * 照樣可以引入第三方變量理解
		 * (j++)-->k=j++,是將值先給k和i作比較.做完比較之後
		 * 下面的運算開始.那個時候j的值變爲了3
		 * 可以將上面的代碼多理解就可以了
		 * 
		 */
		System.out.println("結果爲:"+i);//5
	}
	
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章