入門編『変数と代入演算子』
「変な数?」
エイダは聞きなれない言葉に聞き返す。
「いや『変な』じゃなく、『変わる』の方。中身の値が変わるので『変数』」
エイダはもう一度術式を見返す。
<script>
var x=1;
var y=2;
alert(x+y);
</script>
「普通に考えたら『x』と『y』は数字じゃなくアルファベットだから、『文字列かな?』と思う。そして文字列の『+』はくっ付けるから、答えは『xy』になるような気がするけど、多分そうじゃない」
「ほう、何でそう思う?」
魔導書は感心したように続きを促す。
「えっと、まず始めに。そんな簡単な質問を魔導書さんが聞いてくるはずない。簡単な問題はただの前フリで、間違った答えに誘導してニヤニヤする。多分これもそう」
「何かエラい言われようだが、まぁ良しとしよう」
「二つ目に、文字列はダブルクォーテーション『"』かシングルクォーテーション『'』で囲まれていないといけないから、『x』と『y』はアルファベットだけど文字列じゃない」
「ふむふむ」
「三つ目に、新しい単語『変数』が出て来たから。『x』は『y』は多分『変数』何だと思う。さっき『中身が変わる』と言ってたから、『x』は『y』はタダだの入れ物で、中身は数字の『1』と『2』。どうしてかと言うと、alert()のコマンドの前にある『var x=1;』と『var y=2;』で、入れ物に中身を入れてるから。だから答えは……」
「答えは?」
魔導書は嬉しそうに尋ねる。
「『3』。単純に1と2の足し算だから」
「正解」
ページに『3』の警告文が表示される。
「やったー」
エイダは両手を上げて喜ぶ。間違えが続いていたので、魔導書を少しは見返せて嬉しいのだ。
「今のは本当に関心した。正しい答えもさることながら、理路整然とあそこまで説明できるのは凄い。エイダの年齢ではなかなかできることではないぞ」
「お母さんに叩き込まれてるから……」
エイダは死んだ魚のような目で、遠くを見つめる。
「お母さん、容赦なく理詰めで追及してくるの。少しでも理屈が通ってないと『何で?』『どうして?』が続いて、あやふやなこと言うと『本当に?』『〇〇じゃないの?』と訂正されるの。お母さんが納得するまで、それが永遠と永遠と続くの。世知辛い世の中だよね……」
魔導書を持つ手がプルプルと震える。
「最後の方は支離滅裂だが、まぁエイダ、ガンバ」
励ますことしか出来ない魔導書であった。エイダが落ち着くまで、しばらく授業は中断した。
「もぐもぐ」
エイダは母に作ってもらったサンドウィッチを頬張っている。頭を沢山使って糖分を欲しているのか、あっという間に食べてしまった。
「あぁ、美味しかった。魔導書さんも食べれればいいのに。お母さんの料理、美味しいよ」
「まぁ、わたしは食べる必要はないからな」
エイダはパンくずを払い落とし、後片付けをする。テキパキ動いているエイダに、魔導書は声をかける。
「エイダの母は、本当によくエイダを教えていると思うぞ」
「お母さんが?」
エイダは魔導書に振り向き、聞き返す。
「あぁ。術士にとって、『理論的思考』は必要不可欠な能力だ。それを完璧にエイダに身に付けさせている」
「論理的思考?」
「物事から規則性を見出し理解し、それらの規則性を組み合わせ、未知の問題に答えを出す。先程エイダがやった事だ。これが出来るか出来ないかで、だいぶ違う。エイダの母は、本当にエイダの事を想って教えていると思う」
エイダは魔導書の言葉を静かに聞く。
「『魔法を教えてくれない』と『冒険者になって欲しくないんだ』とエイダは愚痴っていたが、『英語』『数学』『論理的思考』の基礎はしっかりと身につけてさせている。本当に良いお母さんだ」
「そうなんだ」
エイダは嬉しそうにはにかみ、呟いた。母親の事を褒められて嬉しくない子供はいない。ましてや自分の『冒険者になりたい』という意思を尊重してくれて、想っていてくれてるのだから。
「まぁ怖いがな」
「そうなんだよね」
魔導書とエイダは、お互い苦笑いを浮かべた。
「腹ごしらえも終わったようだし、先程の授業の続きをしようか?」
「ん」
エイダは魔導書のページを開く。
<script>
var x=1;
var y=2;
alert(x+y);
</script>
「エイダの推測の通り『x』と『y』は変数。先頭の『var』は英語の『variable』の略で、意味は『変化するモノ』。『var x』は『変数宣言』と呼ばれ『xは変数ですよ』と宣言している。後半の『x=1』は『代入演算子』と呼ばれ、『xに1を入れる』演算を行う。二つの事を一行で済ましているが、二行に分かれていても問題ない」
<script>
var x; //変数宣言
x=1; //代入演算子
var y; //変数宣言
y=2; //代入演算子
alert(x+y);
</script>
術式が更新され、前回と同じように『3』の警告文が表示される。
「変数宣言…… 代入演算子……」
エイダは覚えるように、単語を繰り返す。
「どんどん単語が増えるが、根を詰めて全部覚えなくてもいいんだぞ?原理さえ知っていればいいのだから」
「うん、わかった」
魔導書の助言を話半分に、エイダは教わった事の整理に集中する。その間、魔導書は静かに待ち続けた。
ーーーーーーーー ログ ーーーーーーーーーー
エイダは『変数』を理解した。
エイダは変数宣言『var』を覚えた。
『変数』スキルがLV1になった。
エイダは演算子『=』を覚えた。
『代入演算子』スキルがLV1になった。
ーーーーーーーーーーーーーーーーーーーーーー
登場人物
エイダ・ラブレス
冒険者に憧れている9歳の普通の女の子。
お母さん子の模様。
職業:術者 LV1
称号:初心者
スキル:『関数 LV1』『構文 LV1』『文字列 LV1』『コメント LV1』『算術演算子 LV1』『文字列演算子 LV1』『変数 LV1 new』『代入演算子 LV1 new』
関数:『alert()』
HTMLタグ:『<script>』
喋る魔導書
エイダが森の奥で出会った喋る魔導書。
エイダがいい子なので、教え甲斐がある。
作者より
スキルが順調に増えていますね。リストが増えていくのを見ると、作者も楽しいです。
三日連続更新できました。あと木曜と金曜です。できるかな?
参考にしたページ
プログラマーに向いている人とそうでない人
http://architect-wat.hatenablog.jp/entry/2014/12/04/034411
JSfiddleサンプル
変数例1
https://jsfiddle.net/kkxtnjkd/8/
変数例2
https://jsfiddle.net/kkxtnjkd/9/