【问题标题】:What is C++ for "AND OR"?“AND OR”的 C++ 是什么?
【发布时间】:2011-11-10 21:04:24
【问题描述】:

我正在写一些条件,如果我想要类似的东西

if ( /*condition one */) and or ( /* condition two */   )

C++中有这样的操作符吗,怎么写?

所以我想要类似的东西

if((( /* condition A */)&&(/* condition B */ ))|| /* AND OR? */ ((  /* condition C */ )&&(  /* condition D */)))

(用于确定一个段的至少一侧是否属于另一个段)

所以...在 c++ 中有“AND OR”,我们总是会像这样编写丑陋的代码副本:

if(((( /* condition A */)&&(/* condition B */ ))|| ((   /* condition C */ )&&(  /* condition D */))) || ((( /* condition A */)&&(/* condition B */ )) && (( /* condition C */ )&&(  /* condition D */))) 

?

【问题讨论】:

  • “AND OR”是什么意思?你能写一个真值表吗?
  • ANDOR 是互斥运算符。选择一个。
  • 它们是相互排斥的......你怎么能两者兼得?
  • 问题不清楚。你想用“和或”来完成什么?能给我们举个例子吗?
  • 我真的不明白所有的反对票(4 分钟 8 票?这不是竞争!)。我相信这里有一个“好问题”,而复杂性仅仅是试图用英语描述某些东西的人工制品。另一方面,this other question 值得投反对票,谨慎行事:-)

标签: c++ operators


【解决方案1】:

如果你的意思是我认为你的意思,那么在英语中它更常用和/或,它的意思是这样的:

  • 如果 A 为真,B 为假或
  • 如果 A 为假,B 为真或
  • 如果 A 为真,B 为真

那么表达式整体为真。

如果这就是你的意思,那么答案就是or||

前两种情况在编程中通常称为异或,或XOR:也就是说,如果一种为真,另一种则不是。

C++ or 运算符是一个包含 OR,也就是说,如果 一个或两个操作数为真,则为真

【讨论】:

    【解决方案2】:

    如果你有两个条件,AB

    一个 |乙| A 和 B |甲或乙 ---------------------- T T T T T F F T 呸呸呸呸 F F F F

    如果 A 或 B 为真,则 A 和 B 也为真。听起来你只是想要 OR。

    【讨论】:

      【解决方案3】:

      and or 只是布尔形式的 or:您可以使用双管道 (||) 运算符。

      if ( /*condition one */) || ( /* condition two */   )
      

      【讨论】:

      • 那是ORAND 在哪里?
      • 我认为这仅意味着 OR... 所以通常我想创建类似if((( it->second.first >= start_x)&&(start_x <= it->second.second))|| /* AND OR */ (( it->second.first >= x-1)&&( x-1 <= it->second.second)))
      • @user 它确实仅表示OR阅读有关您问题的 cmets。
      • @user1040114:你一定在想“异或”,这意味着一个或另一个,而不是两者。
      【解决方案4】:

      只需使用or。即使两个条件都为真,它也会评估为true

      换句话说,“或”运算是内含或,而不是排外或。后者要求这两个条件中的一个恰好为真。

      我们通常使用|| 运算符,但or 也可以:

      if (/* condition one */ || /* condition two */)
      

      【讨论】:

        【解决方案5】:

        并通过以下输出获取输入

        true, true -> true
        true, false -> false
        false, true -> false
        false, false -> false
        

        或者用下面的输出接受输入

        true, true -> true
        true, false -> true
        false, true -> true
        false, false -> false
        

        因此,如果“and or”意味着它可能是“and”并且它可能是“or”,那么如果您只验证“true”输出,则使用单个“or”处理这两种情况,如true, true -> true(和只有真正的输出)已经包含在标准or 输出中。

        如果 "and or" 意味着它必须是 "and" 并且它也必须是 "or" 如果您只验证 "true" 输出,则使用单个 "and" 处理这两种情况,如 true, true -> true (and's only true output) 已经包含在标准or 输出中。

        如果您只验证“假”输出,则选择哪个运算符的优先级会根据组合的解释反转。

        【讨论】:

          猜你喜欢
          • 2012-06-30
          • 2019-04-12
          • 1970-01-01
          • 2021-08-08
          • 2012-01-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多