変数の値(0,1)を切り替えることで数値と演算子を使い分けられるのはなぜか?~イヌでもわかるJavaScript講座 Step.30 – 電卓に挑戦 より

calculator

最近、合間を見ては、イヌでもわかるJavaScript講座にチャレンジしております。

プログラミング学習をするにあたり、ホントに助かってます。イヌでもわかるJavaScript講座は、各サンプルの各行に、丁寧なコメントつけてくれています。そのため意味も分からずに「写経」をすることは、ほとんどありません。

ただ、それでもどうしても分からないことが、ときどき登場します。今回はそのうちの1つである、電卓作成中に登場する変数の使い方です。

dentaku

目次

変数myFlgに関するコード

まずは、分からない部分のコードです。

[php]
// ****************
// 下準備
// ****************

// 合計値
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;
}
[/php]

変数myFlgの0と1を切り替えることでなぜ数字と演算子を使い分けられるのか?

「下準備」のところで”myFlg”という変数が定義されています。0の場合は数字が、1の場合は演算子が入力することができるようになります。

その後の関数(myValue,myCalculate)にあるように、変数myFlgの値を0か1にすることで、これから数字を入力するのか、演算子を入力するのか、予め区別できるようになります。

ではなぜ、0か1という2つの数値で、これから入力する状態を分けることができるのでしょうか?正直、自分の理解の範囲を超えて困っています。

【追記】

この記事であげた問題は、後日解決することができました。興味のある方は、以下のサイトにアクセスしてください。

〔参考サイト〕

calculator

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次