【问题标题】:How does one make sense of a string of logical comparisons?如何理解一串逻辑比较?
【发布时间】:2021-05-03 01:21:14
【问题描述】:

例如,如何理解(true && false || (53 < 24));? 我知道它被评估为假我只是好奇我将如何逐步解决这个问题。 谢谢!

【问题讨论】:

  • any Java 表达式相同。 1) 应用运算符优先规则。 2) 从左到右计算和运算符的操作数。

标签: java logic logical-operators


【解决方案1】:

您检查了一个方便的Java Operator Precedence 表,它显示&& 的优先级高于||,这意味着该表达式等价于:

((true && false) || (53 < 24))

然后你开始评估:

((true && false) || (53 < 24))
        ↓
(     false      || (53 < 24))
                        ↓
(     false      ||   false  )
                 ↓
               false

【讨论】:

  • 我认为 看似 随机优先级让我有些吃惊。感谢您的帮助。
  • @CaliCrunch 大多数人不记得所有的优先级,这就是为什么你检查一个方便的表格来记住你。对java operator precedence 进行简单的网络搜索即可轻松找到一个。 Princeton 的那个实际上比我在答案中链接的那个更好,因为它显示了额外的 16 级,并且显示了关联性。
猜你喜欢
  • 2010-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多