-1

注意 - 假设代码是 JAVA

假设我有一个功能 -

public boolean Helper(){
boolean a = ...;
boolean b = ...;
boolean c = ...;
boolean d = ...;
return a || b && c || d;
}

我想了解实际评估表达式的可能方式是什么。我不是在谈论我们填写 1 和 0 的逻辑表。例如 - 据我了解,如果 a 为真,其余变量的值无关紧要。(因为会有短路评估)有人可以帮我列出所有这些结论吗?这个布尔表达式让我很困惑

4

1 回答 1

0

你只需要知道三件事:

  1. 优先规则。这被评估为(a || b) && (c || d)、 或 作为a || (b && c) || d或 作为((a || b) && c) || d。在网上搜索“java 运算符优先级”的简单问题将为您提供答案。

  2. 意识到在 java 中,or 和 and 运算符(||&&,在这里使用)的双重版本“短路”。a && b如果 b 为假,则不会评估 b a,因为结果是已知的。

  3. 基本逻辑表。

所有这些东西都是很容易找到的。我认为家庭作业部分涉及您实际查找所有这些内容:)

于 2021-06-03T18:47:54.310 回答