最近、合間を見ては、イヌでもわかるJavaScript講座にチャレンジしております。
プログラミング学習をするにあたり、ホントに助かってます。イヌでもわかるJavaScript講座は、各サンプルの各行に、丁寧なコメントつけてくれています。そのため意味も分からずに「写経」をすることは、ほとんどありません。
ただ、それでもどうしても分からないことが、ときどき登場します。今回はそのうちの1つである、電卓作成中に登場する変数の使い方です。
変数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つの数値で、これから入力する状態を分けることができるのでしょうか?正直、自分の理解の範囲を超えて困っています。
【追記】
この記事であげた問題は、後日解決することができました。興味のある方は、以下のサイトにアクセスしてください。
〔参考サイト〕