【问题标题】:How to simplify if statement?如何简化 if 语句?
【发布时间】:2014-06-18 13:56:28
【问题描述】:

如何简化这样的 if 语句

!(!a || b)?

为什么它实际上是可能的?

更新:

对不起。不是优化,而是简化:)

【问题讨论】:

  • "How can I optimize if statement like this":优化什么?依据什么标准?可读性?运行速度?那条线怎么还没优化?
  • 您可以将其重写为a && !b(根据De Morgan's Law) - 它不会“更优化”或“更快”,但可能更易于阅读/理解。跨度>

标签: java boolean boolean-logic


【解决方案1】:

基于De Morgan's Law 您的条件!(!a || b) 可以简化为(a && !b)

因为negataion标记为!

!(!a) 会变成一个

!(||) 将变为 &&

!(b) 将变为 !b

【讨论】:

    【解决方案2】:

    您可以简化应用De Morgan's laws

    a && !b
    

    ……但我不会称之为“优化”!确实,这是一个很小的表达式,您不会通过“优化”它来获得任何性能改进(假设您对性能 改进感兴趣) - 首先分析并在其他地方找到性能热点。或者更好的是,通过“优化”阐明你对它的理解,你对它的定义是什么。

    更新

    好的,它简化了你一直想要的表达方式。然后坚持我的答案的第一段。

    【讨论】:

    • 编译器可能会这样做。
    【解决方案3】:

    根据De Morgan theorem,它可能是(a && !b)。不确定它是否有任何区别,因为您没有指定您正在寻找什么优化。

    【讨论】:

      猜你喜欢
      • 2021-11-20
      • 2021-12-07
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 2020-03-15
      • 2019-10-06
      相关资源
      最近更新 更多