Developer

【はじめてのJava】算術演算子その3【演算子編】
2020.10.29
Lv1

【はじめての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が表示される

  }
}

実行結果

>javac Sample.java
>java Sample
increment
++x
10
11
11
x++
10
10
11
decrement
–x
10
9
9
x–
10
10
9

インクリメント、デクリメントは繰り返し処理の中で多用されます。詳しくは繰り返し処理の記事で紹介します。


ポイント

「インクリメント」は「変数の値を1増加」させる。
「デクリメント」は「変数の値を1減少」させる。
「前置」の場合は「先に値が変化」し、そのあと処理が実行される。
「後置」の場合は先に処理が実行され、「処理後に値が変化」する。


はじめてのJavaシリーズの記事一覧はこちら
シリーズ全記事一覧
環境構築編
プログラムの作り方編


java 11 の練習問題一覧はこちら