0
我有這樣的:Java的異常行爲檢查循環條件
while(victim.getHealth() > 1 && !victim.getName().equals(this.getName())) {
victim.hurt();
}
現在我注意到,在特殊場合victim.getName()將返回null(這是希望的行爲)。但是,當這種情況下,我期待NullPointerException發生,因爲我們基本上調用null.equals(this.getName())的第二個條件。
但是這不會發生。如果我切換循環條件的順序,例如
while(!victim.getName().equals(this.getName()) && victim.getHealth() > 1) {
victim.hurt();
}
getName()返回null時將引發NullPointerException。
另外:如果這是||條件而不是& &,在java中,一旦程序發現一個正確的程序將停止檢查真正的條件?
http://stackoverflow.com/questions/4014535/differences-in-boolean-operators-vs-and-vs – HRgiger