変数に 1 を加算または 1 を減算する場合、自己インクリメント演算子 ++ または自己デクリメント演算子 — を使用できます。 ++ または — は単項演算子で、オペランドの前後に使用できます。 ++ と — の機能は、変数の値を 1 ずつ増減することです。オペランドは整数または浮動小数点変数である必要があります。自己インクリメント演算、自己デクリメント演算の意味と使用例を表1に示します。
オペレーター | 意味 | 例 | 結果 |
---|---|---|---|
i++ | 最初に i の値を使用し、次に i 変数自体に 1 を割り当てます。 | 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
fy=fx-- の結果は:5.500000, 6.500000
fy=++fx の結果は:6.500000, 6.500000
fy=--fx の結果は:5.500000, 5.500000
---------文字のインクリメントとデクリメントについて---------
cy=cx++ の結果は:C, B
cy=cx-- の結果は:B, C
cy=++cx の結果は:C, C
cy=--cx の結果は:B, B
実行結果から判断すると、自動インクリメント演算子と自動デクリメント演算子でサポートされている型であれば、どのような型であっても操作に参加できます。
「 Java のインクリメント演算子およびデクリメント演算子 (++ および –)」についてわかりやすく解説!絶対に観るべきベスト2動画
【Javaポイント解説 #09】インクリメント演算子・デクリメント演算子【初心者向け】【さきコーチ】
初心者が押さえておきたいJavaの演算子5つを基本から解説!【Java入門講座】2-6 演算子