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

更好的是:多个“ if”语句还是一个具有多个条件的“ if”语句?

轩辕啸
2023-03-14
问题内容

对于我的工作,我必须开发一个小型Java应用程序,该应用程序可以解析非常大的XML文件(约30万行)以选择非常具体的数据(使用Pattern),因此我试图对其进行一些优化。我想知道这两个摘要之间哪个更好:

if (boolean_condition && matcher.find(string)) {
    ...
}

要么

if (boolean_condition) {
    if (matcher.find(string)) {
        ...
    }
}

其他详情:

  • 这些if语句在循环内的每次迭代中执行(约20k次迭代)
  • boolean_condition是一种boolean在利用外部函数每次迭代计算
  • 如果将boolean设置为false,则无需测试正则表达式是否匹配

谢谢你的帮助。


问题答案:

我遵循的一条黄金法则是尽我所能“ 避免嵌套 ”。但是,如果要以使我的单身条件过于复杂为代价,则我不介意将其嵌套。

此外,您正在使用短路&&操作器。因此,如果布尔值为假,它甚至不会尝试匹配!

所以,

if (boolean_condition && matcher.find(string)) {
    ...
}

是要走的路!



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

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

  • 我试图让if语句从多个条件触发,而不使用不同的触发器多次重写该语句。例如。: 你会如何把这些浓缩成一个陈述? 我尝试过使用'or',它导致任何原始输入触发语句,而不管输入是否匹配任一条件。

  • 问题内容: 在JS中,我试图检查扩展名是否以“ png”“ jpg”或“ gif”结尾。我知道这可以通过switch语句来完成,但是我想知道是否有一种更简单的方法可以将所有条件都放入条件语句中。喜欢: 实现此目标的最佳方法是什么? 问题答案: 您可以使用如下数组: 在这种情况下,您将存储“有效”扩展名。然后,您可以使用的方法来查找数组中的任何项目是否与您正在查看的特定扩展名相匹配- 检查值是否大于

  • 有可能做如下事情吗: 或者: 我知道用很多if-else语句也可以实现同样的目标,但如果它像上面那样工作,看起来会更干净。

  • 问题内容: 谈论Java性能..哪个更好?if..else或多个if 要么 对您的想法感兴趣 谢谢! 问题答案: 在性能方面没有区别。选择最易读的选项,具体取决于代码的功能。 通常,不必担心这些微优化。只有在确定存在需要解决的性能问题后,才能进行优化。 “我们应该忘记效率低下的问题,大约有97%的时间是这样:过早的优化是万恶之源。” -唐纳德​​·努斯