C言語のインクリメントとデクリメント演算子を完全ガイド!初心者でもわかる++と--の基本
生徒
「C言語の演算子を勉強していたら、プラスプラスやマイナスマイナスというものを見つけました。これは何ですか?」
先生
「それはインクリメントとデクリメント演算子と言います。数字を一つ増やしたり、一つ減らしたりする便利な記号です。」
生徒
「変数の値を変えることができるんですか?」
先生
「その通りです。C言語のプログラミングでとてもよく使うので、一緒に練習してみましょう。」
1. インクリメント演算子とは?
インクリメント演算子は、C言語のプログラミングで変数の値を一つ増やしたいときに使用します。記号は++で、読み方はインクリメントです。例えば、カウンターやループ処理で回数を数えるときに、変数の値を一つずつ増やすことができます。もしあなたがゲームでスコアを一つ上げたいとき、手で書くと「score = score + 1」と書きますが、インクリメントならもっと短い書き方ができます。
#include <stdio.h>
int main(void)
{
int score = 0;
score++;
printf("%d\n", score);
return 0;
}
このコードでは、変数の値が一つ増えます。プログラミングの初心者でも、インクリメント演算子を覚えると効率良く書けるようになります。インクリメントは前置と後置という二つの使い方があります。前置は++a、後置はa++と書きます。どちらも値が一つ増えるという意味ですが、使われるタイミングが少しだけ違います。前置は増えた後の値を使い、後置は使った後に増えます。
#include <stdio.h>
int main(void)
{
int a = 5;
printf("%d\n", ++a);
return 0;
}
6
この例では、前置なので増えた後の数字が表示されます。もし後置で書いたら表示が変わります。
#include <stdio.h>
int main(void)
{
int a = 5;
printf("%d\n", a++);
return 0;
}
5
このように後置では、表示するときはまだ増えていない数字になります。実際には表示した後で増えます。インクリメントの前置と後置は混乱しやすいので、ゆっくりと動きを確認しながら覚えていけば大丈夫です。
2. デクリメント演算子とは?
デクリメント演算子は、変数の値を一つ減らす記号です。記号は--で、読み方はデクリメントです。例えば、残り時間を一つずつ減らしたり、ゲームのライフを減らしたりするときに使えます。もし手で書くと「time = time - 1」となりますが、デクリメントを使えばもっと短くできます。
#include <stdio.h>
int main(void)
{
int time = 3;
time--;
printf("%d\n", time);
return 0;
}
2
デクリメントにも、前置と後置があります。前置の--aと後置のa--です。前置は減らしてから使う、後置は使ってから減ります。
#include <stdio.h>
int main(void)
{
int b = 10;
printf("%d\n", --b);
return 0;
}
9
後置の例も見てみます。
#include <stdio.h>
int main(void)
{
int b = 10;
printf("%d\n", b--);
return 0;
}
10
デクリメントを使うと、変数を一つずつ減らす処理が書きやすくなり、コードがすっきりします。
3. インクリメントとデクリメントを使う場面
インクリメントとデクリメントは、カウンターとして数を数える場面で役に立ちます。ゲームのスコア、残りアイテム数、カウントダウンタイマー、繰り返し処理など、C言語のプログラミング入門でとてもよく使われます。特にループ処理と組み合わせると便利です。ループは同じ処理を決まった回数だけ繰り返す仕組みで、回数を管理するためにインクリメントやデクリメントが活躍します。
#include <stdio.h>
int main(void)
{
int i = 0;
while(i < 5)
{
printf("%d\n", i);
i++;
}
return 0;
}
この例では、変数が一つずつ増えていくことで繰り返しが終わる仕組みになっています。デクリメントでも同じように使えます。
4. 前置と後置が違うと何が起こる?
前置と後置が違うことで、変数を使うタイミングが変わります。これは、複雑に見える計算や式で意味が変わることがあるため注意が必要です。もし混乱しそうなら、最初は後置のa++とa--だけ使うと分かりやすいです。慣れてきたら前置も使えます。プログラミングを続けると、どちらも自然に読めるようになります。
#include <stdio.h>
int main(void)
{
int c = 1;
int d = c++ + 5;
printf("%d %d\n", c, d);
return 0;
}
2 6
この例では、後置なので使った後に増える動きになります。もし前置で書いたら、計算が変わります。
#include <stdio.h>
int main(void)
{
int c = 1;
int d = ++c + 5;
printf("%d %d\n", c, d);
return 0;
}
2 7
このように、使い方が変わると結果も変わります。前置と後置を比べるために、手元で実行して動きを確認すると理解が深まります。
5. 無理に使いすぎないことも大切
インクリメントとデクリメントは強力で便利ですが、読みやすさが大切です。おしゃれに見せようとして、複雑な式にたくさん使うと読みにくくなります。初心者のうちは、シンプルな形で使う方が良いです。特に、大事なプログラムでは、意図がはっきりわかる書き方が安全です。もし迷ったら、a = a + 1のような書き方でも大丈夫です。