先日のこの話題のつづき。

初心者にプログラムという物を教えるときに、
かなり初期の段階で躓くのが代入演算子。
a=1は分かりやすく、「aを1とする」と読んでもらえる。

a=a+1は、算数や数学で考えると意味が不明となる。

これがプログラムとして読むならば、
「a+1の結果を新しいaとする」という意味として理解しなければならない。

飲み込みの早い人ならば良いんだけど、
この概念を教えるのが意外と大変。

自分が教えるときには
「=はイコールとか等号の意味はありません。
『○=×』は『○は(こんどから)×(の計算結果)とする』と覚えましょう。」
等と教えるけど、やっぱりこれじゃあ難しいよなぁ・・・

もっと突っ込んだ話をすると、演算子の優先順位とかも重要になるけど、
それは横に置いておく。

ちなみに、アセンブラからプログラムをやっている人にとってみればa=1は
mov ax,1と、mov命令と等価と覚えれば良いので意外とすんなり受け入れられたりする。