C++のインクリメント・デクリメント演算子を完全解説!初心者でもわかる ++ / -- の使い方
生徒
「C++のコードを見ていると、変数の横に++や--が付いていますが、これは何をしているんですか?」
先生
「それはインクリメント演算子とデクリメント演算子といって、数を一つ増やしたり減らしたりするための記号です」
生徒
「数字を一つ変えるだけなのに、わざわざ専用の書き方があるんですね」
先生
「とてもよく使う操作なので、短く安全に書けるように用意されているんです。基本から順番に説明します」
1. インクリメント・デクリメント演算子とは?
C++のインクリメント演算子とデクリメント演算子は、 変数に入っている数値を一つだけ増やす、または減らすための演算子です。 プログラミングでは、回数を数えたり、順番を管理したりする場面が非常に多く、 そのたびに一ずつ数を変える必要があります。 こうした操作を簡単に書くために用意されているのが、 ++ と -- という記号です。
2. インクリメント演算子「++」の基本
インクリメント演算子は、変数の値を一つ増やします。 たとえば、箱の中に五が入っていたら、 箱の中身を六に書き換えるようなイメージです。 数を数える作業を人の手で行うときと同じ感覚で使えます。
int count = 1;
count++;
std::cout << count << std::endl;
2
3. デクリメント演算子「--」の基本
デクリメント演算子は、インクリメントとは逆に、 変数の値を一つ減らします。 残り回数や残り人数を管理する場面でよく使われます。 紙に書いた数字を一つずつ消して減らしていく感覚と同じです。
int life = 5;
life--;
std::cout << life << std::endl;
4
4. 前置と後置の違い
インクリメントとデクリメントには、 変数の前に付ける書き方と、後ろに付ける書き方があります。 前に付ける場合は、先に数を変えてから使われ、 後ろに付ける場合は、使ってから数が変わります。 初心者の方は難しく感じやすいですが、 動きの順番の違いだと考えると理解しやすくなります。
int a = 3;
int b = a++;
std::cout << a << std::endl;
std::cout << b << std::endl;
4
3
5. 前置インクリメントの例
前置インクリメントは、 まず変数の値を一つ増やし、 その増えた値をそのまま使います。 順番が重要な処理では、 この違いが結果に影響します。
int x = 3;
int y = ++x;
std::cout << x << std::endl;
std::cout << y << std::endl;
4
4
6. よく使われる場面
インクリメント演算子とデクリメント演算子は、 繰り返し処理や回数の管理で頻繁に使われます。 例えば、何回処理を行ったかを数える場合や、 残り回数がいくつかを確認する場合です。 手作業で一つずつ数を数える感覚に近いため、 慣れると直感的に使えるようになります。
7. 初心者が注意したいポイント
++ や -- はとても便利ですが、 一行の中で何度も使うと動きが分かりにくくなります。 特に初心者のうちは、 一つの行では一つの変化だけを書く意識を持つと、 ミスを減らすことができます。 数がどう変わったのかを、 頭の中で追える書き方を心がけることが大切です。
8. インクリメントと代入の関係
インクリメント演算子は、 変数に一を足して代入しているのと同じ動きをします。 つまり、短く書ける便利な省略記法です。 こうした省略された書き方は、 C++のコードを読む上で必ず出てくるため、 早めに慣れておくと理解が楽になります。