(--)和(++)在值的前面和後面的區別
阿新 • • 發佈:2019-02-03
--(也就是-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.然後進行自身的++
這裡使用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 } }