2012-11-02 177 views
0
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; 
    } 

由于某种原因,我不能得到这个返回其他任何东西,但真实。我的if语句总是返回true

+1

内,如,x不等于任何其他变量,因此它会返回true – VIDesignz

+0

x代表一个字符输入如果 –

+0

A'', 'a','B','b',...是你想比较的字符,你想把它们放在撇号中''A'',''a'',...一般来说,它有助于如果您提供一个实际编译和运行的最小工作示例。 http://sscce.org/ –

回答

4

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

这里你说的是,如果x不等于Aa,则返回true

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

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

您可能的意思是使用AND&&而不是OR||)连接所有这些条件。

+0

当然假设'A!= a'。 – hammar

+0

@hammar当然。但正如OP在评论中指出的那样,这些值应代表单个字符。 – Sirko

+0

不,我需要他们或因为用户只输入一个字符 –

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

但即使如此,x既可以是'A'也可以是'a'或两者都不是。通过评估,您将始终以TRUE结束,因为x总是会是而不是是您正在测试的那些其他值之一。

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

0

是的,它会总是如此 让你表达的只是海外商品会有一部分((x != A) || (x != a) ...

如果x = A,那么首先声明是假的,但另外一个是真实的,因为你有分离所以你总会变得真实。

拿到假,你需要X = A和X = A,这可能是有点不可能

+0

好,所以我需要它=一个或另一个 –

+0

是的,你需要做x == A || x == a或!(x!= A && x!= a) – user902383

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

});