序章
第一章
Bashで理解するプログラミングの4つの要素
第二章
JavaScriptで学ぶプログラミングの基礎
その他
「状態」とは何かを知ろう
説明
普通に計算してもつまらないので、計算機に少し面白い機能を追加していきましょう。
皆さんの「kadai.js」は現在このようになっているのではないでしょうか?
21行目にコメントがありますよね。
「kotae」という変数には、四則演算の結果が保存されています。
課題
それでは課題です。
この21行目以降に、コメントに書かれている通り「bakuhatsu」関数を呼び出すように変更してください。
メニューバーの「更新」ボタンを押すか、アドレスバーで何も編集せずにEnterキーを押すと再読み込みができます。
プログラムの細かな部分は、今は考えなくて大丈夫です。
プログラムの変更が上手くできると、画像のように、答えが3の倍数の時に、計算機が爆発します。

3の倍数の特徴はみなさん分かりますよね。
そうです。3で割り切れるということです。
「if」を使って、「kotae」が3で割り切れるかどうかという条件判定をして、この条件を満たす場合だけ「bakuhatsu」関数を呼び出せば良いのです。
bakuhatsu(); // JavaScriptは行の最後に;(セミコロン)が必要です。
}
”javascript 剰余 演算子”
剰余は少し難しい言葉ですが「じょうよ」と読みます。
さて、3の倍数の時に、「bakuhatsu」関数を呼び出し、画像のように9➗3の時に爆発させることができたでしょうか?
ところで、一度、爆発させると、次に1+1などを入力して、その答え3の倍数ではない時にも、爆発したままになりませんか?
この計算機のプログラムは以下の2つの「状態」があります。
- 普通の計算機の状態
- 爆発した計算機の状態
「状態」という言葉は、一般的な言葉ですが、システム開発の現場でも良く使われます。
それでは、3の倍数ではない時には、普通の状態に戻す「reset」関数を呼び出すようにしてみましょう。
bakuhatsu();
} else {
reset();
}
あるいは、
if (3の倍数なら) {
bakuhatsu();
}
このようにして、条件にかかわらず「reset」関数を呼び出しても良いですね。
ただ、もし3の倍数だった時に、「reset」関数と「bakuhatsu」関数が続けて呼び出されてしまい、「reset」関数を呼び出すことが無駄になってしまう(「bakuhatsu」関数で背景がどのみち上書きされる)ので、前者の方がより良いでしょう。
答え合わせ
さて、うまく変更ができ、爆発した状態と普通の状態が切り替わるところを確認出来たでしょうか。
作った計算機が実際に他のユーザーに使われるシーンを想像してみると、「状態」という言葉の意味への理解がより深くなるでしょう。
今回の授業はここで終わりです。お疲れさまでした。
こちらのリンクから全体の変更を反映した「kadai.js」をみることができます。
ご自分の変更と見比べてみてください。
0+0=0の時、計算機が爆発していませんか?
0を3で割った余りは0ですよね。
余りが0の時でも、そもそもの計算結果が0なら爆発させたくない時に、その条件を考えてみましょう。
ifの()の中は「&&」を半角スペースでつなげて、いくつかの条件を同時に満たすかどうかを書くことができます。
if (条件1 && 条件2) {
}
判定したいのは、「答えが0ではない(条件1)。かつ(&&)、答えが3の倍数の時(条件2)」ですよね。
以下のキーワードでインターネットを検索すると、ヒントが得られるかもしれません。
”javascript if 判定 書き方”
こちらのリンクから答えが0の場合は爆発させないように変更したプログラムをみることができます。