天天看點

Java自增和自減運算符(++和--)

在對一個變量做加 1 或減 1 處理時,可以使用自增運算符 ++ 或自減運算 --。++ 或 -- 是單目運算符,放在操作數的前面或後面都是允許的。++ 與 -- 的作用是使變量的值增 1 或減 1。操作數必須是一個整型或浮點型變量。自增、自減運算的含義及其使用執行個體如表 1 所示。

表1 自增、自減運算的含義及其使用執行個體

運算符 含義 執行個體 結果
i++ 将 i 的值先使用再加 1 指派給 i 變量本身

int i=1;

int j=i++;

i=2

j=1

++i 将 i 的值先加 1 指派給變量 i 本身後再使用

int i=1;

int j=++i;

i=2

j=2

i-- 将 i 的值先使用再減 1 指派給變量 i 本身

int i=1;

int j=i--;

i=0

j=1

--i 将 i 的值先減 1 後指派給變量 i 本身再使用

int i=1;

int j=--i;

i=0

j=0

在使用自增/自減運算時應注意下面幾個問題。

  • 自增/自減隻能作用于變量,不允許對常量、表達式或其他類型的變量進行操作。常見的錯誤是試圖将自增或自減運算符用于非簡單變量表達式中。
  • 自增/自減運算可以用于整數類型 byte、short、int、long,浮點類型 float、double,以及字元串類型 char。
  • 在 Java 1.5 以上版本中,自增/自減運算可以用于基本類型對應的包裝器類 Byte、Short、Integer、Long、Float、Double 和 Character。
  • 自增/自減運算結果的類型與被運算的變量類型相同。

例 1

編寫一個程式,使用不同類型的資料結合自增和自減運算符進行運算,并輸出變量的值。實作代碼如下:

  1. public static void main(String[] args)
  2. {
  3. int x=5,y; //聲明用于自增和自減的整型變量
  4. char cx=‘B’,cy; //聲明用于自增和自減的字元型變量
  5. float fx=5.5f,fy; //聲明用于自增和自減的浮點型變量
  6. System.out.println("---------對整數的自增和自減---------");
  7. y=x++;
  8. System.out.printf("y=x++ 的結果為:%d ,%d \n",x,y);
  9. y=x--;
  10. System.out.printf("y=x-- 的結果為:%d ,%d \n",x,y);
  11. y=++x;
  12. System.out.printf("y=++x 的結果為:%d ,%d \n",x,y);
  13. y=--x;
  14. System.out.printf("y=--x 的結果為:%d ,%d \n",x,y);
  15. System.out.println("\n---------對浮點的自增和自減---------");
  16. fy=fx++;
  17. System.out.printf("fy=fx++ 的結果為:%f ,%f \n",fx,fy);
  18. fy=fx--;
  19. System.out.printf("fy=fx-- 的結果為:%f ,%f \n",fx,fy);
  20. fy=++fx;
  21. System.out.printf("fy=++fx 的結果為:%f ,%f \n",fx,fy);
  22. fy=--fx;
  23. System.out.printf("fy=--fx 的結果為:%f ,%f \n",fx,fy);
  24. System.out.println("\n---------對字元的自增和自減---------");
  25. cy=cx++;
  26. System.out.printf("cy=cx++ 的結果為:%c ,%c \n",cx,cy);
  27. cy=cx--;
  28. System.out.printf("cy=cx-- 的結果為:%c ,%c \n",cx,cy);
  29. cy=++cx;
  30. System.out.printf("cy=++cx 的結果為:%c ,%c \n",cx,cy);
  31. cy=--cx;
  32. System.out.printf("cy=--cx 的結果為:%c ,%c \n",cx,cy);
  33. }

儲存代碼并運作,輸出的結果如下:

---------對整數的自增和自減---------
y=x++ 的結果為:6 ,5
y=x-- 的結果為:5 ,6
y=++x 的結果為:6 ,6
y=--x 的結果為:5 ,5

---------對浮點的自增和自減---------
fy=fx++ 的結果為:6.500000 ,5.500000
y=x-- 的結果為:5.500000 ,6.500000
y=++x 的結果為:6.500000 ,6.500000
y=--x 的結果為:5.500000 ,5.500000

---------對字元的自增和自減---------
cy=cx++ 的結果為:C ,B
cy=cx-- 的結果為:B ,C
cy=++cx 的結果為:C ,C
cy=--cx 的結果為:B ,B      

從運作結果來看,無論是何種類型,隻要是自增和自減運算符支援的類型,都可以參與運算。