我的教授从我的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时,我不知道下一步该怎么做。
答案 0 :(得分:3)
通过遵循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)
这应该为您提供一个明确的表达式准则。
答案 1 :(得分:2)
这似乎是运算符优先级的一种练习。考虑优先级后,语句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
的两面均为真,整个表达式的求值为true。