1、單獨使用:放在操作數的前面和後面效果一樣。(這種用法是我們比較常見的)
2、參與運算使用:
- 放在操作數的前面(++a):先自增或自減,然後再參與運算。
- 放在操作數的後面(a++):先參與運算,再自增或自減。
3、參與運算例子:
public static void main(String[] args){
int a = 3;
int b;
b = a++;
System.out.println(b); //輸出:3
System/out.println(a); //輸出:4
}
解釋:當++
在變量後面的時候,會先將變量中的值取出做賦值操作,然後再自身加一。
public static void main(String[] args){
int a = 3;
int b;
b = ++a;
System.out.println(b); //輸出:4
System/out.println(a); //輸出:4
}
解釋:當++
在變量前面的時候,會先自身加一,然後將結果賦值。
4、需要注意的是:
public static void main(String[] args){
byte b = 10;
b++;
System.out.println(b); //輸出:11
}
public static void main(String[] args){
byte b = 10;
b = b + 1;
System.out.println(b); //報錯:可能損失經度
}
問:b ++
相當於 b = b+1;
,爲什麼上面可以正常輸出,下面的不行呢?
因爲b
是byte
類型在b + 1
的時候會自動提升爲int
類型,然後賦值給byte
類型的b的時候一定會損失經度,而b++
是運算符,在運算過程中底層做了強制轉換處理b = (byte)(b + 1);
,所以是可以正常打印輸出的。