【Java入門】インクリメント・デクリメント演算子とは?前置き・後置き?

Java Java

今回はJavaのインクリメント・デクリメント演算子について書いています。
インクリメント演算子とデクリメント演算子は下記のような演算子です。

・インクリメント演算子は変数の値を「1」増やしてくれる
・デクリメント演算子は変数の値を「1」減らしてくれる

前置きや後置きについても書いています。

インクリメント演算子

インクリメント演算子を使うと、変数の値を「1」足してくれます。
例えば、下記のように使うことができます。

int number = 1;
number++;

System.out.println(number); // 2

number変数に「1」を代入しています。
その次の処理で、number変数に対して「++」をつけています。

これでnumber変数の値を1つ増やしてくれます。
number変数の内容を出力すると「2」となりました。

「1」足されて増えたことが確認できました。

インクリメントの前置きと後置き

先ほどのように、変数の後に「++」を書くのが後置きです。
変数の前に「++」を書くと、前置きになります。

前置きと後置きをしたときには、動作が変わってきます。

後置き

例えば、下記のように後置きします。

int number1 = 1;
int number2 = number1++;

System.out.println(number1); // 2
System.out.println(number2); // 1

number1変数に「1」を代入しました。
その次の行で、number2変数に代入していますが、number1変数を後置きでインクリメントしています。

number2変数には、number1変数の値が入りますが、後置きしているので先に代入されます。
そのためnumber2変数には「1」が代入されます。

そのあとに、number1変数はインクリメントされて「2」になります。
このように後置きすると、変数が代入された後に、インクリメントされます。

前置き

前置きすると、先に足されて代入されます。

int number1 = 1;
int number2 = ++number1;

System.out.println(number1); // 2
System.out.println(number2); // 2

number1変数に同様にして「1」を代入しています。
次の行で、number1変数を前置きしてインクリメントして、number2変数に代入しました。

このときには、1足されて、代入されるのでnumber2変数は「2」になります。
number1変数も足されたので「2」です。

for文で使うインクリメント

インクリメント演算子はfor文で使うことがよくあります。
例えば、下記のように使うことができます。

for (int i = 0; i < 5; i++) {
    System.out.println("hello" + i);
}

for文の次の値の定義のところで、i++としています。
こうすると、i変数の値がループの終わりでカウントアップします。

このようにfor文で使われることがよくあります。
ちなみにこちらのプログラムを動かすと、変数iが0から4までの間ループして下記のように出力されます。

hello0
hello1
hello2
hello3
hello4

デクリメント演算子

デクリメント演算子を使うことでも、変数の値を「1」減らしてくれます。
例えば、下記のように使うことができます。

int number = 1;
number--;

System.out.println(number); // 0

先ほどと同様にnumber変数に「1」を代入しています。
その次の処理で、number変数に対して「--」をつけています。

これで、number変数の値がひとつ減ります。
number変数の内容を出力すると「0」になりました。

値がひとつ減ったことが確認できました。

デクリメントの前置きと後置き

デクリメント演算子の前置きと後置きも、インクリメント演算子と同じように動作します。

後置き

先ほどの後置きのインクリメント演算子をデクリメントに変えました。

int number1 = 1;
int number2 = number1--;

System.out.println(number1); // 0
System.out.println(number2); // 1

number1変数に「1」を代入しています。
次の行で、number1変数をデクリメントして、number2変数に代入しています。

代入した後でデクリメントされるので、number2変数の値は「1」で、number1変数の値は「0」になります。

前置き

こちらも、先ほどの前置きのインクリメント演算子をデクリメントに変えました。

int number1 = 1;
int number2 = --number1;

System.out.println(number1); // 0
System.out.println(number2); // 0

number2変数に代入するとことで、前置きでデクリメントしています。
そのため、デクリメントされた後の値が代入され、number2変数の値は「0」で、number1変数の値も「0」です。

このようにインクリメント演算子のときと同様にして、前置き・後置きが動作します。

インクリメント・デクリメント演算子まとめ

今回はJavaでインクリメント・デクリメント演算子の使い方や前置き・後置きについて見ていきました。
記事の内容をまとめると下記のようになります。

・++を使うことで、インクリメントできた
・–を使うことで、デクリメントできた
・インクリメント・デクリメント演算子は前置きと後置きがある

前置き・後置き

前置き・後置きについては、下記のとおりです。

前置き・後置き 内容
前置きインクリメント ++number 代入前に1つインクリメントされる。
後置きインクリメント number++ 代入後に1つインクリメントされる。
前置きデクリメント –number 代入前に1つデクリメントされる。
後置きデクリメント number– 代入後に1つデクリメントされる。

インクリメント・デクリメントは、基本的にはループのとこで使うことが主になるかと思います。
変数に代入するようなところで使うと、前述したように前置きや後置きによって、わかりにくいコードになるので気をつけましょう。

コメント

タイトルとURLをコピーしました