【问题标题】:How to read multiple Boolean operators at once in C++如何在 C++ 中一次读取多个布尔运算符
【发布时间】:2017-02-14 08:58:35
【问题描述】:

我正在尝试查找以下结果(真或假):

x = 7, y = 10, z = 12

((!(x < z) || (y > z)) && (z==12) && (y==10))

但我无法阅读它。例如,它会是 or 语句 AND 两个 and 语句的结果吗?

【问题讨论】:

  • 查看operator precedence 规则。
  • 运算符优先级规则在这种情况下甚至没有用,因为每个表达式都由括号分隔。
  • 在这种情况下,OR 表达式周围显然有括号,对吗?不清楚这是否意味着它首先被评估,结果是用括号外的运算符评估的?我不知道您对这个特定示例的问题是什么。
  • "例如,它会是 or 语句 AND 两个 and 语句的结果吗?" -- 如果你问(a || b) &amp;&amp; c &amp;&amp; d 是指((a || b) &amp;&amp; c) &amp;&amp; d 还是(a || b) &amp;&amp; (c &amp;&amp; d):那没有任何区别。如果这不是您要问的,请通过更详细地解释哪个方面让您感到困惑来帮助我们理解。
  • 如果您删除多余的括号,您会留下:(!(x &lt; z) || y &gt; z) &amp;&amp; z == 12 &amp;&amp; y == 10

标签: c++ boolean


【解决方案1】:
((!(x < z) || (y > z)) && (z==12) && (y==10))
((!(7 < 12) || (10 > 12)) && (12==12) && (10==10))
((!(true) || false) && true && true)
((false || false) && true && true)
(false && true && true)
false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多