我对编码非常陌生,一直在尝试使用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)给了我任何东西。
答案 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 />