イコールは中身のコピー

Tips | 2019.08.09

こんにちは。プログランドスタッフHです。

日経XTECHに「ここが盲点、プログラミング初心者は「イコール」でつまずく」という記事がありました。
https://tech.nikkeibp.co.jp/atcl/nxt/column/18/00682/080700011/?P=1

変数は、値を保存するための箱のようなものです。
変数には、別の変数を代入することができます。

例えば「x = y」。
これは「xにyを代入する」という意味であり、「xとyは同じ」という意味はありません。
数学の「=」とプログラミングの「=」は少し意味が違います。

よく言われるのが以下のような間違い。

a = “おはよう”
b = a
b = “こんにちは”

このとき「b」は「こんにちは」、では「aは?」と訊くと「こんにちは」と答える生徒さんが多いです。
答えは「おはよう」。
「bにaを代入する」ということは、「bとaは同じ」という意味ではないからです。

私は「イコールは中身のコピー」と伝えています。
つまり「b = a」は、「bにaの中身をコピーして代入する」という意味になります。
あくまで中身をコピーしているだけなので、元の中身は変わりません。

エクセルを使う方なら、セルの中の値だけコピーして貼り付けしていると考えると分かりやすいかもしれません。
A1のセルの値をコピーしてB1に貼り付けたあと、B1の値を書き換えても、A1の値は変わりません。
A1とB1は別のセルだからです。
変数も同じで、イコールで中身をコピーして代入しても、変数同士は別々のものです。

まとめ

    イコールは「代入」の意味であり「同じ」という意味ではない。
    イコールは中身のコピー。

変数はプログラミングの基礎中の基礎ですので、分からないままにしないようにしましょう。

※当ブログの内容は個人の見解であり、所属団体とは無関係です。ご了承ください。