【はじめてのJava】算術演算子その3【演算子編】
算術演算子
その1では加算、減算、乗算を扱い、その2では除算と複合代入演算子を扱いました。今回はインクリメントとデクリメントを扱います。
前々回記事はこちら。
前回記事はこちら。
目次
算術演算子
インクリメント
インクリメント は変数の値を1増加させる演算子です。Javaでは「++」で記述します。英語のincrease(増加)をイメージすると覚えやすいでしょう。複合代入演算子でも同じ記述ができますが、1ずつ増加/減少させるという処理はあまりにもよく使うため、インクリメント演算子やデクリメント演算子ができたのでしょう。
インクリメントには「前置」と「後置」の2種類があります。
例
int x = 10; ++x; //インクリメント(前置) x++; //インクリメント(後置)
前置と後置では動作の仕方が異なります。記述する際には動作の違いに注意する必要があります。
前置と後置の違い
インクリメントのみを行う場合は前置と後置に違いはありません。しかし、インクリメントをほかの処理と一緒に記述した場合、前置と後置で動作に違いが出ます。
前置のインクリメント
インクリメントが前置の場合は、先に変数が1増加し、そのあと処理が行われます。
例えば、次のようになっている場合、インクリメントが行われている行が実行されると画面に11が表示されます。
int x = 10; System.out.println(x); //10が表示される System.out.println(++x); //11が表示される System.out.println(x); //11が表示される
また、次の例ではyは11になります。
int x = 10; int y = ++x; //yは11、xも11になる。
後置のインクリメント
インクリメントが後置の場合は、まず処理が行われ、その後変数が1増加します。
例えば、次のようになっている場合、インクリメントが行われている行が実行されても画面には10が表示されますが、次の行ではxは11になっています。
int x = 10; System.out.println(x); //10が表示される System.out.println(x++); //10が表示される System.out.println(x); //11が表示される
また、次の例ではyは10になります。
int x = 10; int y = x++; //yは10、xは11になる。
デクリメント
デクリメント は変数の値を1減少させる演算子です。Javaでは「−−」で記述します。英語のdecrease(減少)をイメージすると覚えやすいでしょう。デクリメントにも「前置」と「後置」の2種類があります。
例
int x = 10; --x; //デクリメント(前置) x--; //デクリメント(後置)
インクリメントの「1増加」という部分が「1減少」に代わっている以外は基本的にインクリメントと変わりません。前置と後置の注意点も同様です。
インクリメントとデクリメントの動作対応表
インクリメント、デクリメントの動作をまとめた表を以下に示します。
xの初期値 | 処理内容 | 処理後のx | 処理後のy |
10 | y = ++x; | 11 | 11 |
10 | y = x++; | 11 | 10 |
10 | y = −−x; | 9 | 9 |
10 | y = x−−; | 9 | 10 |
インクリメントやデクリメントの前置、後置の違いはJavaの資格試験では非常によく出題されます。違いを必ず覚えておきましょう。
サンプルソースコード
インクリメント、デクリメントを使用したコードを記述して動作を確認してみましょう。
サンプルコード
public class Sample { public static void main(String[] args){ int x = 0; System.out.println("increment"); System.out.println("++x"); x = 10; //xを10で初期化する System.out.println(x); //10が表示される System.out.println(++x); //11が表示される System.out.println(x); //11が表示される System.out.println("x++"); x = 10; //xを10で初期化する System.out.println(x); //10が表示される System.out.println(x++); //10が表示される System.out.println(x); //11が表示される System.out.println("decrement"); System.out.println("--x"); x = 10; //xを10で初期化する System.out.println(x); //10が表示される System.out.println(--x); //9が表示される System.out.println(x); //9が表示される System.out.println("x--"); x = 10; //xを10で初期化する System.out.println(x); //10が表示される System.out.println(x--); //10が表示される System.out.println(x); //9が表示される } }
実行結果
>java Sample
increment
++x
10
11
11
x++
10
10
11
decrement
–x
10
9
9
x–
10
10
9
インクリメント、デクリメントは繰り返し処理の中で多用されます。詳しくは繰り返し処理の記事で紹介します。
ポイント
「インクリメント」は「変数の値を1増加」させる。
「デクリメント」は「変数の値を1減少」させる。
「前置」の場合は「先に値が変化」し、そのあと処理が実行される。
「後置」の場合は先に処理が実行され、「処理後に値が変化」する。
はじめてのJavaシリーズの記事一覧はこちら
シリーズ全記事一覧
環境構築編
プログラムの作り方編