什么是“AND OR”的C ++?

时间:2011-11-10 21:04:25

标签: c++ operators

我正在写一些条件,如果我想要像

那样的话
if ( /*condition one */) and or ( /* condition two */   )

C ++中是否有这样的运算符以及如何编写它?

所以我想要像

这样的东西
if((( /* condition A */)&&(/* condition B */ ))|| /* AND OR? */ ((  /* condition C */ )&&(  /* condition D */)))

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

所以...在c ++中有“AND OR”,我们总是像这样编写UADLY CODE DUPLICATION:

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

5 个答案:

答案 0 :(得分:24)

如果你的意思是我认为你的意思,那么用英语写的更常见和/或,它意味着什么:

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

然后表达式总体上是正确的。

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

前两种情况通常在编程中被称为独占或,或 XOR :即,如果一个为真,另一个则不是。< / p>

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

答案 1 :(得分:3)

如果您有两个条件,AB

A | B | A and B | A or B
------------------------
T   T      T        T
T   F      F        T
F   T      F        T
F   F      F        F

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

答案 2 :(得分:2)

和/或者只是或者是布尔术语:你可以使用双管(||)运算符。

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

答案 3 :(得分:2)

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

换句话说,“或”操作是包含或,而不是独占或。后者要求两个条件中的一个恰好为真。

我们通常使用||运算符,但or也有效:

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

答案 4 :(得分:0)

使用以下输出

进行输入
true, true -> true
true, false -> false
false, true -> false
false, false -> false

或者使用以下输出

获取输入
true, true -> true
true, false -> true
false, true -> true
false, false -> false

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

如果“和或”意味着它必须是“和”并且它也必须是“或”使用单个“和”处理两种情况,如果您只是验证“真实”输出,则为true, true -> true(并且唯一的真输出)已包含在标准or输出中。

如果仅验证“false”输出,则根据组合的解释,反转哪个运算符的优先顺序。