Reputation: 159
this is a very simple question but I would like some clarification to be sure.
Take the following example:
if (FirstName == "Bert" || Surname == "Berterson")
Does the || (or) operator mean, in this case:
A. "If the person is named Bert and/or has the surname Berterson" (i.e. "Bert Berterson", "Bert Smith", "Gary Berterson" would all qualify)
-- or --
B. "If the person has either the first name Bert or the surname Berterson but not both" (i.e. "Bert Berterson" would not qualify while "Sally Berterson" and "Bert Billhouse" will qualify)
Thank you for you time, I hope this makes sense and apologies for such a simple question
Upvotes: 2
Views: 2144
Reputation: 869
It is a logical OR which means if either the first condition, the second condition, or both are met, the result is true.
From the documentation:
The conditional-OR operator (||) performs a logical-OR of its bool operands. If the first operand evaluates to true, the second operand isn't evaluated. If the first operand evaluates to false, the second operator determines whether the OR expression as a whole evaluates to true or false.
https://msdn.microsoft.com/en-us/library/6373h346.aspx
Upvotes: 0
Reputation: 22739
It's the first (as in most programming languages) - meaning a logical or. The other operator you described is called xor (exclusive or), which is represented by the C# ^
operator.
Note that ||
(and &&
) are "short-circuited", meaning that they evaluate lazily. For example, in a || b
, if a
is true, C# doesn't check b
at all. That's in contrast to the bitwise or operator |
, which would always evaluate both operands.
Upvotes: 0
Reputation: 43876
The ||
operator in C# is an inclusive OR that is short-circuited. This means for your example:
if (FirstName == "Bert" || Surname == "Berterson")
if FirstName
is "Bert"
, the whole expression is true
and the second part is not even evaluated.
if FirstName
is not "Bert"
the second part is evaluated and determines the result of the whole expression.
For an exclusive OR (XOR) use the ^
operator:
if ((FirstName == "Bert") ^ (Surname == "Berterson"))
This would only be true
if exactly one of the two conditions is true
.
Upvotes: 6
Reputation: 445
"Or" means logical or, which is true if at least one of the statements is true.
To express "xor", you would have to use ^
Upvotes: 2