2014-10-28 112 views
0

因此,我们有:条件,如果计算结果为与&&

if (arguments.length != 1 && arguments.length != 2) { 
    throw new IllegalArgumentException("Wrong number of arguments in " + string); 
} 

如果arguments的长度为1,传递这个if块,但why。评估应该像这样我的知识后工作:

如果(!ARGS = 1 ==真)AND(!ARGS = 2 ==真)

含义args.length = [0, 3, 4, ...]应该只有有效有效通过。但即使它与args.legth == 1一起使用,它也可以跳过if

这怎么可能?谢谢。

回答

3

这似乎应该是

if (arguments.length == 1 || arguments.length == 2) { 
    throw new IllegalArgumentException("Wrong number of arguments in " + string); 
    } 
2

如果要允许除1或2个东西,用这个:

if (args.length == 1 || args.length == 2) { 
throw new IllegalArgumentException("Wrong number of arguments in " + string); 
} 
0

如果参数为长度为1,传递这个如果阻止但为什么。该 评价应该像这样我的知识后工作:

如果(参数= 1 ==真!)AND(参数= 2 ==真!)

这doen't太大的意义。如果args.length是1,那么args.length != 1是错误的,不正确。