我的if语句总是返回true

时间:2012-11-02 12:18:43

标签: if-statement

    if ((x != A) || (x != a )|| ( x != B) || (x != b) || ( x != C) || (x != c) || (x != D) || (x != d) || ( x != F) || (x != f))
    {
    System.out.println("Points: -1");
     return true;
    }
    else
    {
    System.out.println("hi");
     return false;
    }

出于某种原因,除了真实之外我无法回复其他任何事情。

4 个答案:

答案 0 :(得分:4)

采取前两个条件:(x != A) || (x != a )

您的意思是,如果true不等于xA,请返回a

假设x == A,第一个条件将返回false,第二个条件将返回true。因此,你的整个if条件将返回true。

同样适用于x == a。这里第一个条件产生true,if条件也是如此。

您可能意味着使用AND&&代替OR||)来连接所有这些条件。

答案 1 :(得分:2)

if ((x != 'A') || (x != 'a' ) ....
          ^ missing quotes

但即便如此,x可以是“A”或“a”,也可以都不是。通过 OR 评估,您将始终以 TRUE 结束,因为x始终 NOT 是您正在测试的其他值之一。

执行(x != 'A') && (x != 'a' ) ...

答案 2 :(得分:0)

是的,它将永远是真的 让我们只调整表达式((x != A) || (x != a ) ...

的一部分

如果x = A,则第一个语句为false,但是其他一个为真,并且因为你已经分离,所以你总是会得到真的。

得到假,你需要x = A和x = a,这可能有点不可能

答案 3 :(得分:0)

查看此小提琴http://jsfiddle.net/CtCqe/2/

使用正则表达式可能会更好,不确定用户的输入是否只是一个字符。

HTML

<div id="result">Result</div>
<input type='text'/>
<div id="pressed"></div>

Jquery的

$('input').on('change input', function(){

   var x = $(this).val();



if((x == 'A') || (x == 'a' )|| ( x == 'B') || (x == 'b') || ( x == 'C') || (x == 'c') || (x == 'D') || (x == 'd') || ( x == 'F') || (x == 'f')){
    $('#result').html('False');
    $(this).val('');
}else{
    $('#result').html('True');
    $(this).val('');
}

$('#pressed').html(x);

});