如何解决这个逻辑运算符问题?

How do I solve this logical operator problem?

我的教授从我的 C++ 课程中给了我们一个逻辑运算符工作表,我被这个问题难住了。 如果 x = -2, y = 5, z = 0, t = -4,以下每个逻辑表达式的值是多少?

3 * y / 4 < 8 && y >= 4

插入所有内容后,我卡在了这一步。 3 < 8 && 5

我知道左边 3 * 5= 15,15 / 4 = 3。现在另一边是我卡住的地方。我知道 5 是真的,因为它大于或等于 4。但我不知道接下来要做什么,当它是 8 && 5 时。有人能帮忙吗?

您可以按照 the order of precedence of operators and their associativity.

将表达式中的各种子表达式括起来
3 * y / 4 < 8 && y >= 4

(3 * y) / 4 < 8 && y >= 4

((3 * y) / 4) < 8 && y >= 4

(((3 * y) / 4) < 8) && y >= 4

(((3 * y) / 4) < 8) && (y >= 4)

这应该可以让您清楚地了解表达式的计算结果。

这似乎是运算符优先级的练习。当考虑优先级时,语句 3 * y / 4 < 8 && y >= 4 等同于

(((3 * y) / 4) < 8) && (y >= 4)

代入变量,我们有

(((3 * 5) / 4) < 8 && (5 >= 4)

算完之后,我们得到

(3 < 8) && (5 >= 4)

3确实小于8,5确实大于等于4,所以布尔值and两边都为真,整个表达式求值为真。