数学で「代入」という単語が出てきます。文字に数字を入れるとか文字を数字に置き替えるという表現が使われているようです。だけど、文字に数字を入れるってイメージがわかないと言うか、数字に置き替えてしまったら文字が無くなるとか--。置き換えは1回だけで、2回以上は置き替えられないなんて思ってしまうかもしません。
代入先は変数
変数で解説した通り、変数は器です。まだ変数を読んでいない方は先に「プログラミング超基本 変数って何?」を読んでください。代入とは、コップにジュースを入れる、これが代入です。コップは無くなりません。中身が変わるのです。
プログラミングでは =(記号)を使って値を変数に入れます。そして値を入れるのって右から左なんです。ちょっと感覚がつかめませんよね。
プログラミングでの表現
a=1
がプログラミングでの代入の表現です。a=1を日本語の文章化したらどのような表現になりますか?プログラミングを知らない人は「aは1(aイコール1)」と表現します。なぜなら中学の数学がそう教えたからです。=の左側が式で右側が答えというのが数学(算数)的な表現です。プログラミング的な表現だと「aに1代入する」となります。=の右側が式で左側が答え。ざっくり、数学(算数)とは逆だと思ってください。この代入が行われたから、代入以降はaを1として扱うことができるようになります。また、代入が行われると以前の値は無くなります。常に上書きだということに注意してください。
変数を変数に代入
b=a
これで、aの値をbに代入されます。しつこいようですが「bイコールa」とか「bはa」という意味ではありません。また、bに「a」を入れるという意味でもありません。aの値をbに代入することによりbの値がaの値となるのです。
余談
とある文献では、代入を表す表現として←(矢印)が使われます。
a←0
と表記してあれば誰もが「変数aに0を代入する」という解釈するでしょう。残念ながら矢印が俗に言う全角文字なのでプログラミングでは普及できなかったのでしょう。
もし、代入の記号が←だったら、冒頭に言った「右から左」ということが視覚で理解できたのでしょう。
同じタイプのデータだけ許される
「プログラミング超基本 変数って何?」のところで説明したようにコップは冷たいものマグカップには熱いものを入れるという用途があります。
コップ=マグカップ ※マグカップの中身をコップへ
熱いコーヒーが入っていたらコップが壊れるかもしれません。
マグカップ=コップ ※コップの中身をマグカップへ
何とか行けそうですね。でも、入れ物の用途としては違いがあります。違いを都合よく解釈してくれる言語(スクリプト)もあれば、絶対に許さない言語もあります。「この言語はだめ、この言語は大丈夫」なんてことを覚えずに、常に用途が同じものを代入で使うということを頭に入れておいてください。仮に都合よく解釈してくれても自分で思っているように解釈してれるとは限りません。
まとめ
代入は=で表して、右から左に値を入れるということ。もし=の両側が変数であればタイプ(データ型)を合わせて置く。
値を入れる方向さえ理解していればたいした話ではないですね。