2014-10-28 139 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是錯誤的,不正確。