Java インクリメント演算子 i++と++iは似てるけど違う




Javaプログラマーで、これを使わない日は、お休みの日ぐらいです。
試験に良く出るのでしっかり覚えておきましょうw

インクリメント(デクリメント)演算子とは?

ざっくり言うと、自分の変数に1を加算(減算)します。
Javaでは、「i++」とか「i––」とか書きます。
加算(++)する方をインクリメント演算子。減算(––)する方をデクリメント演算子と呼びます。

このインクリメント演算子・デクリメント演算子は、変数の前にも後ろにも書けます。
「i++;」と「++i;」は、同じことをしてくれます。
これは、次の書き方と等価です。

  • i = i + 1;
  • i += 1;

つまり、元のiが10であれば、新しいiは、11になります。
これだけ見ると違いはありませんが、次のような使い方をすると違いが出てきます。

i++と++iの違いを見るサンプル

前と後にインクリメント演算子を書いた場合の違いについて見てみます。

実行結果

サンプルの解説

インクリメントをしている最中に、その変数を代入させると、動きが変わります。

  • 「++」を前に書くと、先に加算してから代入する。
  • 「++」を後に書くと、先に代入してから加算する。

ふつうは、「i++」と書きます。
他人がソースを斜め読みしたり、部分的に見たりすると、前後の違いに気づかないこともあります。
なるべく前に書くのは避けた方が良いでしょう。