关于具有多个条件的If语句的快速问题

时间:2011-02-17 18:09:52

标签: java conditional

  

可能重复:
  && (AND) and || (OR) in Java IF statements

这是一个我应该知道多年前答案的问题,但如果我在Java中编写一个if语句,其中包含if(x!= null&& y == null&& x) .equals(z))这样安全吗?我假设if语句条件是从左到右解释的,因此检查x!= null是否开始将确保在条件的x.equals(z)部分上没有抛出空指针异常(至少是x)。这准确吗?

4 个答案:

答案 0 :(得分:4)

是。它被称为短路逻辑:http://en.wikipedia.org/wiki/Short-circuit_evaluation

答案 1 :(得分:1)

像@mellamokb一样说它是短路的。

我只是补充说,如果你有这样的比较:

if (str != null && str.equals("FINAL STRING") {...}

更好地使用:

if ("FINAL STRING".equals(str)) {...}

第一种方式经常被选择,但条件应该尽可能简单:)

答案 2 :(得分:0)

简短的回答:你做得很好。

答案很长:你做得很好,因为Java使用了一种称为短路布尔评估的东西。阅读它here

答案 3 :(得分:0)

简短而简单:是的,这是正确的。 :)

相关问题