Java &&(AND)和|| (OR)在IF语句中

新手上路,请多包涵

我有以下代码:

if(!partialHits.get(req_nr).containsKey(z) || partialHits.get(req_nr).get(z) < tmpmap.get(z)){  
    partialHits.get(z).put(z, tmpmap.get(z));  
} 

partialHitsHashMap 在哪里。
如果第一个陈述为真会怎样? Java还会检查第二条语句吗?因为为了使第一条语句为真,所以HashMap不应包含给定的键,因此如果选中了第二条语句,则将获得NullPointerException
简单来说,如果我们有以下代码

if(a && b)  
if(a || b) 

Java将在第一种情况下检查b是否a为false,a在第二种情况下是否为true?

阅读 2.3k
2 个回答

&& 如果a为false就不会去检查b
|| 如果a为true就不会去检查b

新手上路,请多包涵

不会被评估。这非常有用。例如,如果你需要测试String是否为null或为空,则可以编写:

if (str != null && !str.isEmpty()) {
  doSomethingWith(str.charAt(0));
} 

或者,反过来

完整答案在这里

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题