2 回答
TA贡献1828条经验 获得超3个赞
我希望我能更好地理解这个问题,但我根据 Jaromanda X 的观察更新了您的 IF-ELSE 逻辑。
=
仅用于赋值,不应用于检查相等性。相反,当尝试评估多个值的相等性时,您应该使用==
或。
下面是编译和运行的代码的更新版本,但同样,我不确定预期结果到底是什么,所以我会让您确定它现在是否按预期工作。
<script>
var operators = ['+', '-'];
var e = ['km', 'm'];
function F1() {
num1 = document.getElementById("num1");
num2 = document.getElementById("num2");
rnum1 = Math.floor((Math.random() * 10) + 1);
rnum2 = Math.floor((Math.random() * 10) + 1);
num1.innerHTML = rnum1;
num2.innerHTML = rnum2;
oper = document.getElementById("operator");
op = operators[Math.floor(Math.random() * 2)];
oper.innerHTML = op;
eht = document.getElementById("e1");
eht2 = document.getElementById("e2");
eh = e[Math.floor(Math.random() * e.length)];
eh2 = e[Math.floor(Math.random() * e.length)];
eht.innerHTML = eh;
eht2.innerHTML = eh2;
answer = document.getElementById("answer");
if (eh === 'km') {
if (eh2 === 'm') {
answer.innerHTML = eval(rnum1 * 1000 + op + rnum2);
}
else {
if (eh === 'm') {
if (eh2 === 'km') {
answer.innerHTML = eval(rnum1 + op + rnum2 * 1000);
}
else {
if (eh === 'km') {
if (eh2 === 'km') {
answer.innerHTML = eval(rnum1 * 1000 + op + rnum2 * 1000);
}
else {
answer.innerHTML = eval(rnum1 + op + rnum2)
};
}
}
}
}
}
}
</script>
<p>
<label id="num1"> </label> <label id="e1"> </label>
<label id="operator"> </label>
<label id="num2"> </label> <label id="e2"> </label>
= <label id="answer">m </label>
</p>
<button onclick="F1()"> New </button>
TA贡献1868条经验 获得超4个赞
我意识到对于我试图创建的内容,我不需要添加else声明。所以我if else用下面的代码替换了所有语句,然后它就起作用了:
if (eh === 'km')
{if (eh2 === 'm')
{answer.innerHTML = eval(rnum1 * 1000 + op + rnum2);}}
if (eh === 'm')
{if (eh2 === 'km')
{answer.innerHTML = eval(rnum1 + op + rnum2 * 1000);}}
if (eh === 'km')
{if (eh2 === 'km')
{answer.innerHTML = eval(rnum1 * 1000 + op + rnum2 * 1000);}}
if (eh === 'm')
{if (eh2 === 'm')
{answer.innerHTML = eval(rnum1 + op + rnum2);}}
- 2 回答
- 0 关注
- 104 浏览
添加回答
举报