我应该对这些使用else-if语句吗?

时间:2019-06-28 21:25:12

标签: javascript calculator

我对编码非常陌生,一直在尝试使用HTML和JavaScript创建一个非常简单的计算器,其中用户输入两个值,从按钮的选择中选择一个运算符,然后得出结果。

我很感谢那些知道自己在做什么的人的指导!

我已经尝试实现else-if,但是似乎并不能解决问题。仅函数的最后一行正在执行。 Python并不难吗?

<button id="a" value="+">+</button>
<button id="b" value="-">-</button>
<button id="c" value="/">/</button>
<button id="d" value="X">X</button>

<input type="text" id="n1"/>
<input type="text" id="n2"/>
<script>
    function calc()
    {
        var n1 = parseFloat(document.getElementById('n1').value);
        var n2 = parseFloat(document.getElementById('n2').value);

        var a = document.getElementById("a").value;
        var b = document.getElementById("b").value;
        var c = document.getElementById("c").value;
        var d = document.getElementById("d").value;

        if(a === '+')
        {
            document.getElementById('result').value = n1+n2;
        }
        if(b === '-')
        {
            document.getElementById('result').value = n1-n2;
        }
        if(c === '/')
        {
            document.getElementById('result').value = n1/n2;
        }
        if(d === 'X')
        {
            document.getElementById('result').value = n1*n2;
        }
    }

</script>

我希望执行每行以产生正确的操作数,但是目前唯一的最后一行(n1 * n2)给了我任何东西。

1 个答案:

答案 0 :(得分:0)

您的所有条件都是正确的,因为按钮的值不会根据用户是否单击按钮而改变。

您应该更改calc(),以使其将按钮作为参数,然后检查参数值的值。 switch语句是编写这种类型支票的一种简便方法。

function calc(button) {
  var n1 = parseFloat(document.getElementById('n1').value);
  var n2 = parseFloat(document.getElementById('n2').value);
  let result;
  switch (button.value) {
    case '+':
      result = n1 + n2;
      break;
    case '-':
      result = n1 - n2;
      break;
    case '/':
      result = n1 / n2;
      break;
    case 'X':
      result = n1 * n2;
      break;
  }
  document.getElementById('result').value = result;
}
<input type="text" id="n1" />
<input type="text" id="n2" /><br>
<button id="a" value="+" onclick="calc(this)">+</button>
<button id="b" value="-" onclick="calc(this)">-</button>
<button id="c" value="/" onclick="calc(this)">/</button>
<button id="d" value="X" onclick="calc(this)">X</button>
<br>
<input type="text" id="result" readonly />