変数の値(0,1)を切り替えることで数値と演算子を使い分けられるのはなぜか?~イヌでもわかるJavaScript講座 Step.30 – 電卓に挑戦 より
目次
最近、合間を見ては、イヌでもわかるJavaScript講座(新しいタブで開く)にチャレンジしております。
プログラミング学習をするにあたり、ホントに助かってます。イヌでもわかるJavaScript講座は、各サンプルの各行に、丁寧なコメントつけてくれています。そのため意味も分からずに「写経」をすることは、ほとんどありません。
ただ、それでもどうしても分からないことが、ときどき登場します。今回はそのうちの1つである、電卓作成中に登場する変数の使い方です。
変数myFlgに関するコード
まずは、分からない部分のコードです。
// **************** // 下準備 // **************** // 合計値 var myTotal = 0; // 入力値 var myInput = ""; // 合計と現在の入力値を合わせる演算子 var myCalc = "+"; // 0→数字の入力状態 1→演算子の入力状態 var myFlg = 1; // **************** // 数字ボタンを押す // **************** function myValue(myData) { // 窓を数字入力の状態にする myFlg = 0; myInput += myData; document.myForm.myLine.value = myInput; } // **************** // 演算ボタンを押す // **************** function myCalculate(myData) { // 窓を数字入力状態にする if (myFlg==0) { // 窓を演算子入力状態にする myFlg = 1; myWork = myTotal + myCalc + myInput; myTotal = eval(myWork); myInput = ""; document.myForm.myLine.value = myTotal; } // 入力値が"="のとき if (myData == "=") { myTotal = 0; myCalc = "+"; } else { myCalc = myData; } } // **************** // クリアボタンを押す // **************** function myC() { myTotal = 0; myCalc = "+"; myInput = ""; document.myForm.myLine.value = myTotal; }
変数myFlgの0と1を切り替えることでなぜ数字と演算子を使い分けられるのか?
「下準備」のところで”myFlg”という変数が定義されています。0の場合は数字が、1の場合は演算子が入力することができるようになります。
その後の関数(myValue,myCalculate)にあるように、変数myFlgの値を0か1にすることで、これから数字を入力するのか、演算子を入力するのか、予め区別できるようになります。
ではなぜ、0か1という2つの数値で、これから入力する状態を分けることができるのでしょうか?正直、自分の理解の範囲を超えて困っています。
【追記】
この記事であげた問題は、後日解決することができました。興味のある方は、以下のサイトにアクセスしてください。
〔参考サイト〕