当前位置: 首页 > 面试题库 >

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

宇文勇
2023-03-14
问题内容

我有以下代码:

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?


问题答案:

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

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

或者,反过来

if (str == null || str.isEmpty()) {
  complainAboutUnusableString();
} else {
  doSomethingWith(str.charAt(0));
}

如果我们在Java中没有“短路”,那么在上面的代码行中将会收到很多NullPointerExceptions。



 类似资料:
  • 本文向大家介绍Nginx中IF、AND、OR语句用法实例,包括了Nginx中IF、AND、OR语句用法实例的使用技巧和注意事项,需要的朋友参考一下 在上一篇文章:《Nginx if语句加正则表达式实现字符串截断》中, 我们介绍过了使用if来进行截断字符串的用法, 这次我们来了解下if的逻辑用法: 什么是逻辑用法呢, 就程序中的and、or关系, 就叫做逻辑了. NGINX支持if的 and 与 o

  • 问题内容: 在Python中使用IF语句时,必须执行以下操作才能使“层叠”正常工作。 检查“等于”时,是否有办法使Python接受多个值?例如, 问题答案: if job in (“mechanic”, “tech”): print “awesome” elif job in (“tool”, “rock”): print “dolt” 括号中的值是一个元组。该运营商检查,看是否右手柄元组内的某处

  • 所以程序应该是:-获取用户的输入,直到用户键入“n或N”以显示停止的标志-当用户键入“n或N”时,程序正数和负数和。 还有我得到的 这个错误信息,我不知道是什么问题。提前谢谢你!

  • 问题内容: 我有以下SQL语句: 我读过我可以使用括号来完成此操作,但我想知道这是否有效: 或者 问题答案: 这两个都是有效的,但是由于优先级高于,因此它们的含义有所不同: 您的第一个带括号的查询将选择类型为3、4、5的已删除行 第二个带括号的查询将选择类型为3、5的所有行,以及类型为4的已删除行。这与不带括号的原始查询的含义相同。 您可以使用operator完全避免混淆,如下所示: 或者如果您想

  • 着色器语言GLSL中关于if语句、for语句的使用,和javascript语言、C语言中的if语句、for语句执行逻辑规则基本一致,这里默认你已经有一定的编程基础,也就不做过多讲解,只是简单说明一下。 单独使用if if(x>100){ gl_FragColor = vec4(1.0,0.0,0.0,1.0);//红色 } if-else形式 bool colorBool; // 根据布尔值

  • 问题内容: 我在这里面临着奇怪的事情。如果我缺少什么,请帮助我了解。我的if条件应该是: 但是我写错了: 而且我的Eclipse编译器不要求我对其进行更正。然后,我假设没有编译时间或检查异常。所以: 返回布尔值? 问题答案: 是的,分配给您的变量并返回。因此,即使它通常是一个错误,它也是一种有效的语法。 避免这种错别字比较安全。