Logical operators are special symbols that allow us to combine conditions and perform operations based on the result of those conditions. The most common logical operators in C# are:
Operator | Name | Description |
---|---|---|
&& | AND | Returns true if both operands are true |
|| | OR | Returns true if at least one of the operands is true |
! | NOT | Negates the value |
If you want to learn more about Logical Operators
check the Introduction to Programming Course read more
List of logical operators
Logical AND (&&)
The logical AND operator allows us to evaluate two conditions and returns true
if both conditions are true, or false
otherwise. For example:
bool condition1 = true;
bool condition2 = false;
bool result = condition1 && condition2; // result will be false
Logical OR (||)
The logical OR operator allows us to evaluate two conditions and returns true
if at least one of the conditions is true, or false
otherwise. For example:
bool condition1 = true;
bool condition2 = false;
bool result = condition1 || condition2; // result will be true
Logical NOT (!)
The logical NOT operator allows us to invert the value of a condition. If the condition is true
, it returns false
, and if the condition is false
, it returns true
. For example:
bool condition = true;
bool result = !condition; // result will be false
Usage Examples
Combination with &&
The &&
(logical AND) operator is used to combine two boolean expressions. The entire expression evaluates to true
only if both sub-expressions are true
.
int age = 25;
bool hasLicense = true;
bool canDrive = (age >= 18) && hasLicense; // true
Combination with ||
The ||
(logical OR) operator is used to combine two boolean expressions. The entire expression evaluates to true
if at least one of the sub-expressions is true
.
bool isRaining = false;
bool isCold = true;
bool wantsToStayHome = isRaining || isCold; // true
Negation with !
The !
(logical NOT) operator is used to negate a boolean expression. The entire expression evaluates to true
if the sub-expression is false
, and vice versa.
bool isDay = true;
bool isNight = !isDay; // false
Combining logical operators
It is possible to combine several logical operators in a single expression to create more complex conditions. For example:
int number = 15;
bool isMultipleOf3 = (number % 3 == 0);
bool isMultipleOf5 = (number % 5 == 0);
bool isMultipleOf3_or_5 = isMultipleOf3 || isMultipleOf5; // true, since 15 is a multiple of 3
bool isMultipleOf3_and_5 = isMultipleOf3 && isMultipleOf5; // false, since 15 is not a multiple of both 3 and 5
bool isNotMultipleOf3 = !isMultipleOf3; // false
Precedence of logical operators
When combining multiple logical operators in an expression, it is important to understand their precedence to evaluate the expression correctly.
The precedence of logical operators in C# follows this order:
!
(NOT)&&
(AND)||
(OR)
Therefore, in an expression with &&
and ||
, &&
is evaluated before ||
. However, it is advisable not to abuse this when writing our code. Don’t hesitate to use parentheses if it improves readability.
For example:
int a = 5;
int b = 10;
int c = 15;
bool result = (a > b) || (b < c) && (a == c); // true
// Evaluated as: (a > b) || ((b < c) && (a == c))
To improve clarity, sometimes it is advisable to put parentheses even if they are not necessary, if that improves readability.
bool result = (a > b) || ((b < c) && (a == c)); // true