http://cya.sakura.ne.jp/java/calc.htm
こちらを見ながらJSを勉強しています。
var kigou = 1; //合計と入力値の演算子 0:数字 1:演算子
電卓の動き方として、
①数字ボタンを押す
②numに入る
③document.myForm.myLine.valueで表示する
となるのがわかるのですが、var kigou = 1;がない場合は①をしても③で表示がされませんでした。
これは何故なのでしょうか?
<form name="myForm"> <p> <!-- 結果表示 --> <input type="text" size="12" name="myLine" value="0"> </p> <ul> <li><button type="button" value="AC" onclick="myC()">AC</button></li> <li><button type="button" value="+/-" onclick="mybtn()">+/-</button></li> <li><button type="button" value="%" onclick="mybtn('%')">%</button></li> <li><button type="button" value="/" onclick="mybtn('/')">÷</button></li> </ul> <ul> <li><button type="button" value="7" onclick="myValue(7)">7</button></li> <li><button type="button" value="8" onclick="myValue(8)">8</button></li> <li><button type="button" value="9" onclick="myValue(9)">9</button></li> <li><button type="button" value="*" onclick="mybtn('*')">×</button></li> </ul> <ul> <li><button type="button" value="4" onclick="myValue(4)">4</button></li> <li><button type="button" value="5" onclick="myValue(5)">5</button></li> <li><button type="button" value="6" onclick="myValue(6)">6</button></li> <li><button type="button" value="-" onclick="mybtn('-')">-</button></li> </ul> <ul> <li><button type="button" value="1" onclick="myValue(1)">1</button></li> <li><button type="button" value="2" onclick="myValue(2)">2</button></li> <li><button type="button" value="3" onclick="myValue(3)">3</button></li> <li><button type="button" value="+" onclick="mybtn('+')">+</button></li> </ul> <ul> <li><button type="button" value="0" onclick="myValue(0)">0</button></li> <li><button type="button" value="1" onclick="myValue(1)">1</button></li> <li><button type="button" value="." onclick="myValue('.')">.</button></li> <li><button type="button" value="=" onclick="mybtn('=')">=</button></li> </ul> </form> <script> var ans = 0; //現在の合計値 var num = ""; //現在入力している値 var before = "+"; //一度前に入力したもの var kigou = 1; //合計と入力値の演算子 0:数字 1:演算子 //値または小数点ボタンを押す function myValue(myData) { //myValueって関数をつくる kigou = 0; num += myData; //numに+1した document.myForm.myLine.value = num; }; function mybtn(myData) { //mybtnって関数をつくる if (kigou === 0) { kigou = 1; myWork = ans + before + num; ans = eval(myWork); num = ""; document.myForm.myLine.value = ans; }; if (myData == "=") { num = 0; before = "+"; } else { before = myData; } }; /* function myC() { ans = 0; //現在の合計値 num = ""; //現在入力している値 before = "+"; //一度前に入力したもの document.myForm.myLine.value = ans; }; */ </script>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/27 06:20
2019/03/27 06:53