在對一個變量做加 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
編寫一個程式,使用不同類型的資料結合自增和自減運算符進行運算,并輸出變量的值。實作代碼如下:
- public static void main(String[] args)
- {
- int x=5,y; //聲明用于自增和自減的整型變量
- char cx=‘B’,cy; //聲明用于自增和自減的字元型變量
- float fx=5.5f,fy; //聲明用于自增和自減的浮點型變量
- System.out.println("---------對整數的自增和自減---------");
- y=x++;
- System.out.printf("y=x++ 的結果為:%d ,%d \n",x,y);
- y=x--;
- System.out.printf("y=x-- 的結果為:%d ,%d \n",x,y);
- y=++x;
- System.out.printf("y=++x 的結果為:%d ,%d \n",x,y);
- y=--x;
- System.out.printf("y=--x 的結果為:%d ,%d \n",x,y);
- System.out.println("\n---------對浮點的自增和自減---------");
- fy=fx++;
- System.out.printf("fy=fx++ 的結果為:%f ,%f \n",fx,fy);
- fy=fx--;
- System.out.printf("fy=fx-- 的結果為:%f ,%f \n",fx,fy);
- fy=++fx;
- System.out.printf("fy=++fx 的結果為:%f ,%f \n",fx,fy);
- fy=--fx;
- System.out.printf("fy=--fx 的結果為:%f ,%f \n",fx,fy);
- System.out.println("\n---------對字元的自增和自減---------");
- cy=cx++;
- System.out.printf("cy=cx++ 的結果為:%c ,%c \n",cx,cy);
- cy=cx--;
- System.out.printf("cy=cx-- 的結果為:%c ,%c \n",cx,cy);
- cy=++cx;
- System.out.printf("cy=++cx 的結果為:%c ,%c \n",cx,cy);
- cy=--cx;
- System.out.printf("cy=--cx 的結果為:%c ,%c \n",cx,cy);
- }
儲存代碼并運作,輸出的結果如下:
---------對整數的自增和自減---------
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
從運作結果來看,無論是何種類型,隻要是自增和自減運算符支援的類型,都可以參與運算。