【发布时间】:2021-08-21 21:27:31
【问题描述】:
注意 - 假设代码是 JAVA 格式
假设我有一个函数 -
public boolean Helper(){
boolean a = ...;
boolean b = ...;
boolean c = ...;
boolean d = ...;
return a || b && c || d;
}
我想了解实际评估表达式的可能方式。我不是在谈论我们填写 1 和 0 的逻辑表。 例如 - 据我了解,如果 a 为真,其余变量的值无关紧要。(因为会有短路评估) 有人可以帮我列出所有这些结论吗?这个布尔表达式让我很困惑
【问题讨论】:
-
用代表实际评估逻辑的括号重写表达式(由于运算符的优先级),然后应用短路规则(如
true || x不会评估x)。它应该相对简单。 -
更改这段代码不在我的手中。我只能研究它并得出结论
-
请您帮我找出所有可能的情况
-
您仍然可以通过将@GaëlJ 为自己建议的括号放置来分析代码。这只是一种更简单的方式来可视化无论如何会发生什么(尝试谷歌“运算符的优先级”——这会对你有很大帮助)。
-
@xerx593 - 在 Java 和大多数其他编程语言以及命题逻辑中,“and”优先于“or”。
标签: java boolean short-circuit-evaluation