カテゴリ: JavaSilver試験対策 更新日: 2026/03/24

Javaのインクリメント・デクリメント演算子を完全解説!初心者でもわかる使い方と注意点

022
Javaのインクリメント・デクリメント演算子

先生と生徒の会話形式で理解しよう

生徒

「Javaのインクリメントとかデクリメントの演算子が難しいです!使い方を教えてください。」

先生

「インクリメントとデクリメントはよく使われる便利な演算子です。まず基本から解説しましょう。」

生徒

「ありがとうございます!演算子が複雑に絡む式の動作も知りたいです。」

先生

「それでは、動作の順序や注意点も含めて詳しく説明しますね。」

1. インクリメントとデクリメントの基本

1. インクリメントとデクリメントの基本
1. インクリメントとデクリメントの基本

Javaでは、++(インクリメント)と--(デクリメント)という2つの演算子を使用して、変数の値を増減させることができます。


public class IncrementDecrementExample {
    public static void main(String[] args) {
        int number = 5;
        number++; // インクリメント: number = 6
        number--; // デクリメント: number = 5
        System.out.println(number); // 出力: 5
    }
}

これらの演算子は単独で使用すると直感的に動作しますが、他の演算と組み合わせるとその動作が少し複雑になります。

2. 前置と後置の違い

2. 前置と後置の違い
2. 前置と後置の違い

インクリメントとデクリメントには、前置後置の2種類があります。

2.1 前置の場合(++x--x

前置の場合は、変数の値を先に変更してから、その値を利用します。


public class PreIncrementExample {
    public static void main(String[] args) {
        int x = 10;
        int y = ++x; // xを1増やしてからyに代入
        System.out.println("x: " + x); // 出力: x: 11
        System.out.println("y: " + y); // 出力: y: 11
    }
}

2.2 後置の場合(x++x--

後置の場合は、現在の値を利用してから、変数の値を変更します。


public class PostIncrementExample {
    public static void main(String[] args) {
        int x = 10;
        int y = x++; // yにxの現在値を代入してからxを1増やす
        System.out.println("x: " + x); // 出力: x: 11
        System.out.println("y: " + y); // 出力: y: 10
    }
}

3. 複雑な式での動作例

3. 複雑な式での動作例
3. 複雑な式での動作例

複数のインクリメントやデクリメントが混在する式では、操作順序が重要です。一時変数を使って考えると分かりやすいです。


public class ComplexOperationExample {
    public static void main(String[] args) {
        int x = 10;
        int result = x++ + x + --x - x--;
        System.out.println("x: " + x);       // 出力: x: 9
        System.out.println("result: " + result); // 出力: result: 29
    }
}

この例では、xの値が式の中で何度も変わるため、各ステップで一時的な値を記憶して計算する必要があります。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. 注意点

4. 注意点
4. 注意点

インクリメントやデクリメントの計算順序を間違えると、思わぬ結果を招くことがあります。特に、以下の点に注意してください。

  • 一時変数の挙動: 式中での値の変化を正確に追う。
  • 前置と後置の違い: どのタイミングで値が変化するかを意識する。
  • 可読性: 複雑な式は避け、分解して書く方が安全。

5. ループ処理(for文)での活用シーン

5. ループ処理(for文)での活用シーン
5. ループ処理(for文)での活用シーン

インクリメント演算子が最も頻繁に使われるのは、繰り返し処理を行うfor文です。プログラミング未経験の方でも、この演算子を使うことで「1回、2回……」とカウントアップする処理を非常にシンプルに記述できます。

以下のサンプルコードは、0から4まで順番に数字を表示するプログラムです。


public class ForLoopExample {
    public static void main(String[] args) {
        // i++ を使って、処理が終わるたびに i を 1 ずつ増やす
        for (int i = 0; i < 5; i++) {
            System.out.println("カウント: " + i);
        }
    }
}

実行結果:


カウント: 0
カウント: 1
カウント: 2
カウント: 3
カウント: 4

この場合、i++としても++iとしてもループの結果は変わりませんが、Javaの慣習としてはi++と書くのが一般的です。

6. 代入演算子(+=, -=)との違いを理解する

6. 代入演算子(+=, -=)との違いを理解する
6. 代入演算子(+=, -=)との違いを理解する

「値を1増やす」方法は、number++以外にもnumber += 1number = number + 1といった書き方があります。初心者の方はどれを使うべきか迷うかもしれませんが、実は明確な使い分けがあります。

インクリメント演算子は「1だけ」増減させる専用の道具ですが、代入演算子(+=)は「2増やす」「5増やす」といった自由な数値を扱うことができます。


public class AssignmentExample {
    public static void main(String[] args) {
        int score = 10;
        
        score++; // 1増えて11になる
        score += 5; // 5増えて16になる
        
        System.out.println("最終スコア: " + score);
    }
}

実行結果:


最終スコア: 16

「たった1増やすだけ」という特定の目的においては、++を使うのが最もコードが短く、読みやすくなります。

7. 文字型(char)に対する増減操作

7. 文字型(char)に対する増減操作
7. 文字型(char)に対する増減操作

意外かもしれませんが、インクリメント・デクリメント演算子は数値(intやdouble)だけでなく、文字を扱うchar型に対しても使用可能です。これはJava内部で文字が「Unicode」という番号で管理されているためです。

例えば、「'A'の次の文字を表示する」といった処理も、演算子一つで実現できます。


public class CharIncrementExample {
    public static void main(String[] args) {
        char alphabet = 'A';
        
        System.out.println("元の文字: " + alphabet);
        
        alphabet++; // 'A'の次の文字コードに進む
        System.out.println("次の文字: " + alphabet);
        
        alphabet--; // 元に戻る
        System.out.println("戻った文字: " + alphabet);
    }
}

実行結果:


元の文字: A
次の文字: B
戻った文字: A

このように、演算子の仕組みを深く知ることで、数値計算以外のちょっとしたアルゴリズムにも応用できるようになります。

まとめ

まとめ
まとめ

Javaのインクリメント(++)とデクリメント(--)は、プログラム内で変数の値を簡単に増減させるための重要な演算子です。この記事では基本的な使い方から、複雑な式での動作までを学びました。以下は今回の内容を振り返ります。

  • インクリメントとデクリメントは、単独で使用すると簡単な動作をしますが、複雑な式に組み込むと動作順序が重要になる。
  • 前置演算子(++x, --x)は、値を先に変更してから利用する。
  • 後置演算子(x++, x--)は、値を利用してから変更する。
  • 複雑な式では一時変数を用いる考え方で挙動を追跡するのがポイント。
  • 可読性を高めるために、複雑な式は分解して書く方が望ましい。

以下に改めて、複雑な式での具体的な例を示します。


public class SummaryExample {
    public static void main(String[] args) {
        int value = 20;
        int result = value-- - ++value + value++ + --value;
        System.out.println("value: " + value); // 出力: value: 20
        System.out.println("result: " + result); // 出力: result: 20
    }
}

この例では、各ステップでvalueの値がどのように変化するかを正確に追いかけることで、正しい結果を導き出せます。

先生と生徒の振り返り会話

生徒

「インクリメントとデクリメント、最初は難しそうでしたけど、実際の動作を見てだいぶ分かりました!」

先生

「そうですね。特に複雑な式では順序や一時変数の考え方を理解することが重要です。」

生徒

「一時変数がイメージできると、動作の順序が追いやすかったです! 次はもっと応用的な場面で使ってみたいです。」

先生

「その意気です!次回は、実際のプログラム内でインクリメントやデクリメントを活用する方法を学びましょう。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Javaのインクリメント演算子とは何ですか?

Javaのインクリメント演算子(++)は、変数の値を1だけ増やす演算子です。例えば、変数xに対してx++とすると、xの値が1増加します。

Javaのデクリメント演算子とは何ですか?

Javaのデクリメント演算子(--)は、変数の値を1だけ減らす演算子です。x--と記述すれば、xの値が1減少します。

Javaで前置インクリメントと後置インクリメントの違いは何ですか?

前置インクリメント(++x)は値を増やしてから利用し、後置インクリメント(x++)は値を使ってから増やします。使い方によって結果が異なるため注意が必要です。
JavaSilver試験対策の一覧へ
新着記事
Java
Java の UUID クラスを使って一意の識別子を作成する方法
JavaのUUIDクラスの使い方を完全ガイド!初心者でもわかる一意な識別子の作成方法
Java
Java の古い日付クラス(Date, Calendar)と新しい日付 API の違い
JavaのDateとCalendarと新しい日付APIの違いとは?初心者向け完全ガイド
Java
Java のカレンダー機能(java.util.Calendar)の使い方
JavaのCalendarクラスの使い方をわかりやすく解説!日付や時刻の操作に便利な基本機能まとめ
Flutter
Dartのパッケージ管理(pubspec.yaml)の使い方
FlutterとDartのパッケージ管理完全ガイド!pubspec.yamlの使い方を初心者向けに徹底解説
人気記事
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
AWS
【AWS】VPCとは?初心者向けに仕組み・用途・できることをわかりやすく解説
【AWS】VPCとは?初心者向けに仕組み・用途・できることをわかりやすく解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク