C++の代入演算子を完全解説!初心者でもわかる = += -= *= /= の活用方法
生徒
「C++のプログラムを見ていると、イコールがたくさん出てきて混乱します。全部同じ意味なんですか?」
先生
「実は少しずつ役割が違います。C++では代入演算子と呼ばれていて、値を変数に入れるための大切な仕組みなんです」
生徒
「+= とか -= も見たことがあります。あれは何をしているんですか?」
先生
「それも代入演算子の仲間です。順番に、ゆっくり確認していきましょう」
1. 代入演算子とは?
C++の代入演算子とは、値を変数に入れるための記号です。 変数とは、数字や文字を一時的にしまっておく箱のような存在です。 代入演算子を使うことで、その箱の中身を決めたり、書き換えたりできます。 プログラミング未経験の方は、ノートに数字を書いて消して書き直す作業を 思い浮かべると分かりやすいでしょう。
2. 基本の代入演算子「=」
イコール記号は、右側の値を左側の変数に入れるという意味です。 数学のイコールとは意味が違うため、最初は戸惑いやすいポイントです。 C++では「等しい」という意味ではなく、 「代入する」という動作を表しています。
int score;
score = 80;
std::cout << score << std::endl;
80
3. 足しながら代入する「+=」
プラスイコールは、今入っている値に数を足して、 その結果をもう一度同じ変数に入れる演算子です。 これは「少しずつ増やす」処理でよく使われます。 ゲームの得点計算や、合計金額を計算する場面を想像すると理解しやすいです。
int total = 100;
total += 20;
std::cout << total << std::endl;
120
4. 引きながら代入する「-=」
マイナスイコールは、変数の中身から指定した数を引いて、 その結果を同じ変数に戻します。 所持金が減る処理や、残り回数を管理するときによく使われます。 現実の減算と同じ感覚で使える演算子です。
int life = 10;
life -= 3;
std::cout << life << std::endl;
7
5. 掛けながら代入する「*=」
アスタリスクイコールは、現在の値に数を掛けて、 その結果を同じ変数に代入します。 倍率計算や、数量と単価をまとめて更新したい場合に便利です。 記号は少し難しそうに見えますが、 中身は単純な掛け算です。
int price = 500;
price *= 2;
std::cout << price << std::endl;
1000
6. 割りながら代入する「/=」
スラッシュイコールは、変数の値を割り算した結果で更新します。 人数で割って平均を求める場面などで使われます。 整数同士の割り算では、小数点以下が切り捨てられる点に注意が必要です。 これはC++の基本的な仕様です。
int totalScore = 90;
totalScore /= 3;
std::cout << totalScore << std::endl;
30
7. 代入演算子を使うメリット
代入演算子を使うことで、コードが短く読みやすくなります。 同じ変数名を何度も書かずに済むため、 書き間違いも減ります。 初心者のうちから、こうした書き方に慣れておくと、 後から大きなプログラムを読むときに理解しやすくなります。
8. 初心者が混乱しやすい注意点
イコールとダブルイコールを混同しないことが大切です。 今回紹介した代入演算子は、すべて値を入れ直すためのものです。 条件判定とは役割が違うため、 意味を分けて覚える必要があります。 まずは「代入は値を入れる」と覚えると混乱しにくくなります。