我正在写一些条件,如果我想要像
那样的话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 */)))
答案 0 :(得分:24)
如果你的意思是我认为你的意思,那么用英语写的更常见和/或,它意味着什么:
然后表达式总体上是正确的。
如果这是你的意思,那么答案只是or
或||
。
前两种情况通常在编程中被称为独占或,或 XOR :即,如果一个为真,另一个则不是。< / p>
C ++ 或运算符是包含OR,也就是说,如果操作数中的一个或两个为真,则为真
答案 1 :(得分:3)
如果您有两个条件,A
和B
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”输出,则根据组合的解释,反转哪个运算符的优先顺序。