1. TOPTOP
  2. Webサービス
  3. JavaScript

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

|

calculator

最近、合間を見ては、イヌでもわかるJavaScript講座(新しいタブで開く)にチャレンジしております。

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

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

dentaku

変数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つの数値で、これから入力する状態を分けることができるのでしょうか?正直、自分の理解の範囲を超えて困っています。

【追記】

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

〔参考サイト〕