如何解决这个逻辑运算符问题?
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
两边都为真,整个表达式求值为真。
我的教授从我的 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
两边都为真,整个表达式求值为真。