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

Java如何在单个IF语句中处理多个条件

元景天
2023-03-14
问题内容

可以说我有这个:

if(bool1 && bool2 && bool3) {
...
}

现在。如果bool1被评估为false,那么Java是否足够聪明来跳过检查bool2和bool2?Java甚至从左到右检查它们吗?我之所以这样问,是因为我在整理条件时将其内部条件“分类”(从左侧最便宜的条件开始)。现在我不确定这是否会给我带来任何性能上的好处,因为我不知道Java如何处理这个问题。


问题答案:

是的,Java(类似于其他主流语言)使用 惰性评估 短路,这意味着它的评估尽可能少。

这意味着以下代码是完全安全的:

if(p != null && p.getAge() > 10)

另外,a || b从不评估b是否atrue



 类似资料:
  • 我如何重构所有这些看起来重复和太长的代码,有没有办法让它变短? 我试过使用Switch语句,但在这种情况下不起作用。 “typeofdata”变量包含一个用于匹配相关行的字符串。

  • 问题内容: 我在Robot Framework中编写条件时遇到麻烦。 我要执行 我可以在一个条件下使用此关键字,但是在多个条件下,出现此错误: 失败:关键字名称不能为空。 我也想使用这些关键字: 和 但是我最终会遇到错误。 问题答案: 您应该使用小写字母“ or”和“ and”,而不是OR和AND。 并且要注意关键字和参数之间的空格/制表符(您至少需要两个空格)。 这是一个代码示例,您的三个关键字

  • 问题内容: 我有一个变量。 我想呼应,如果等于任何下列值,,,,或。有没有办法通过像?? 这样的单个语句来做到这一点? 问题答案: 我认为,使用“ Or”代替“ And”会有所帮助

  • 问题内容: 对于我的工作,我必须开发一个小型Java应用程序,该应用程序可以解析非常大的XML文件(约30万行)以选择非常具体的数据(使用),因此我试图对其进行一些优化。我想知道这两个摘要之间哪个更好: 要么 其他详情: 这些if语句在循环内的每次迭代中执行(约20k次迭代) 的是一种在利用外部函数每次迭代计算 如果将设置为,则无需测试正则表达式是否匹配 谢谢你的帮助。 问题答案: 我遵循的一条黄

  • 问题内容: 我试图获得一个if语句从多个条件中触发,而不用不同的触发器多次重写该语句。例如: 您如何将这些内容浓缩成一个陈述? 我试过使用“或”,并且无论输入是否符合任何条件,它都会导致任何raw_input触发语句。 问题答案: 你想做的是 如果您有很多可能性,请选择另一个选项: 由于您使用的是2.7,因此您也可以这样编写(在2.7或3+版本中有效,但在2.6或以下版本中无效): 这使元素成为您

  • 问题内容: 我已经编写了类似这样的方法。但是我猜这应该进行重构。谁能建议最好的方法来避免使用多个if语句? 我在这里不能使用大小写转换,因为我的“条件”是。 问题答案: 您可以使用来保存您的解决方案: 为了使此代码起作用,您需要像在类中那样进行定义和定义,如下所示: