我应该为这些使用 else-if 语句吗?
Should I be using else-if statements for these?
我对编码很陌生,一直在尝试使用 HTML 和 JavaScript 创建一个非常简单的计算器,用户输入两个值,从一系列按钮中选择一个运算符,然后得到一个结果。
非常感谢知道自己在做什么的人提供一些指导!!
我试过实施 else-ifs,但它似乎没有解决问题。只有函数的最后一行在执行。 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) 给了我任何东西。
您的所有条件都为真,因为按钮的值不会根据用户是否单击它而改变。
您应该更改 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 />
我对编码很陌生,一直在尝试使用 HTML 和 JavaScript 创建一个非常简单的计算器,用户输入两个值,从一系列按钮中选择一个运算符,然后得到一个结果。
非常感谢知道自己在做什么的人提供一些指导!!
我试过实施 else-ifs,但它似乎没有解决问题。只有函数的最后一行在执行。 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) 给了我任何东西。
您的所有条件都为真,因为按钮的值不会根据用户是否单击它而改变。
您应该更改 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 />