这是一个布尔逻辑

时间:2015-06-19 21:58:02

标签: javascript boolean-logic boolean-operations

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

这是我到目前为止所做的,但输出不正确。如果声明我的其他地方有问题:

<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>

3 个答案:

答案 0 :(得分:1)

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

  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;

  4. 您可以在此jsfiddle中找到所有这些问题。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

此外,我认为这句话根本不会起作用:

alert(a b doTheMath);

警告采用字符串,因此如果要显示这三个值,则需要将它们连接起来,例如

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