这是一个布尔逻辑

Here is a boolean-logic

本文关键字:一个 布尔逻      更新时间:2023-09-26

>编写一个名为findTen的JavaScript函数,该函数从两个文本字段中读取两个数字,然后输出到div"True",如果其中一个是10或两个都是10,或者如果它们的总和是10。否则,你的函数应该向div 输出 "False"。

这就是我到目前为止所拥有的,但它没有正确输出。我的else if语句有问题:

<script> 
function findTen()  {
    var a = document.getElementById("one").value;
    var b = document.getElementById("two").value;
    var doTheMath = a + b;
    if ( a == 10 || b == 10)  {
        alert("true");
    }
    else if (doTheMath == 10 ) {
        alert("true");
    }
    else {
        alert(a b doTheMath);
    }
    document.getElementById("output").innerHTML = c;
}
</script>

您发布的代码中存在一些错误:

  1. ab是字符串,所以doTheMath实际上是字符串。在a = 5b = 5的情况下,doTheMath是'55'。它们需要以多种方式之一进行转换。我选择了Number

    var doTheMath = Number(a) + Number(b);

  2. alert(a b doTheMath)是语法不正确。您应该考虑将它们连接起来:

    alert(a + ' ' + b + ' ' + doTheMath);

  3. 最后的作业中未定义c。所以在你的if/else块中,你可能想要一个这样的语句:c = false;

您可以在此jsfiddle中看到所有这些问题。

您的问题是它将输入处理为字符串而不是整数。你要做的是使用 parseInt 函数将字符串变成整数

你的 a 和 b 变量是字符串,因为你刚刚把它们从文本字段中弄出来。在 JavaScript 中,如果你在字符串上使用 + 运算符,它会将它们连接起来。这是javascript相当不幸的"功能"。要添加文本字段中的值,您首先需要将它们转换为整数:

var doTheMath = parseInt(a) + parseInt(b);

此外,我认为这种说法根本行不通:

alert(a b doTheMath);

Alert 需要一个字符串,所以如果你想显示这三个值,你需要将它们连接起来,例如

alert(a + ' + ' + b + ' = ' + doTheMath);