スポンサードリンク

【Java】インクリメント・デクリメント

整数を扱うデータ型の変数値を、プラス1するインクリメント、マイナス1するデクリメントについて説明します。

1.インクリメントとは?

インクリメントとは、変数の値(主にint型の変数の値)をプラス1する演算子です。

for構文やwhile構文のループ処理で使われることが多いです。

インクリメントには「i++」と「++i」の2つがあり、どちらも「i = i + 1」という意味です。

i++;  と  ++i;

i = i + 1; と同じ意味

以下のプログラムを実行した場合、「4」と出力されます。

int i=3;
i++;
System.out.println(i);

2.デクリメントとは?

デクリメントとは、インクリメントと同様に変数の値をマイナス1する演算子です。

こちらもfor構文やwhile構文でよく使われます。

デクリメントには「i- -」と「- -i」の2つがあり、どちらも「i = i - 1」という意味です。

※なぜかデクリメント演算子がうまく表示されないので、「- -」のマイナスとマイナスの間に半角スペースを入れていますが、本来はないので、コピペして使う場合は半角スペースを削除してください!

i- -; と - -i;

i = i - 1;と同じ意味

以下のプログラムを実行した場合、「2」と出力されます。

int i=3;
i- -;
System.out.println(i);

3.「i++」と「++i」の違いは?「i- -」と「- -i」の違いは?

インクリメントには「i++」と「++i」、デクリメントには「i- -」と「- -i」があり、それらは同じ意味なのですが、別の変数に代入したり出力するときには注意が必要です。

1.別の変数に代入

以下のコードは、まず変数「j」に変数「i」の値が代入され、その後変数「i」がプラス1されます。

j = i++;

つまり上のコードは下のコードと同じ意味になります。

j = i;
i = i +1;

一方、以下のコードではまず変数「i」がプラス1されて、その後変数「j」に変数「i」の値が代入されます。

j = ++i;

つまり、上のコードは下のコードと同じ意味になります。

i = i +1;
j = i;

2.出力の場合

以下のコードでは、まず変数「i」の値が出力され、その後変数「i」がプラス1されます。

System.out.println(i++);

つまり上のコードは下のコードと同じ意味になります。

System.out.println(i);
i = i +1;

一方、以下のコードではまず変数「i」がプラス1されて、その後変数「i」の値が出力されます。

System.out.println(++i);

つまり上のコードは下のコードと同じ意味になります。

i = i +1;
System.out.println(i);

このように、演算子を先に書くかあとに書くかで変数「j」の結果が異なります。これはデクリメントの場合も同様です。

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント