# Logical Operators

[print-me]

Logical operators typically involve boolean values and  yields boolean results. There are often use to create multiple or complex conditions. We have learned that a  boolean value can either be true or false. We can use the different logical operators available in C#. Suppose that var2 and var3 are  boolean values.

Operator Name Category Example
&& Logical AND Binary var1 = var2 && var3;
|| Logical OR Binary var1 = var2 || var3;
! Logical NOT Unary var1 = !var1;

### Logical AND Operator (&&)

An expression using the logical AND operator evaluates to true if both operands are true. If either or both of the operands are false, the expression evaluates to false. The following shows the truth table for the logical AND operator.

X Y && Y
true true true
true false false
false true false
false false false

To better understand the effect of logical AND, remember that it can only yields true if both operands are true. All other combinations yield false. When  using logical AND operator, the moment that the program sees that the first operand is false, then the result is automatically false.

You can use the logical AND operator on boolean expressions such as those  using comparison operators. For example, the following expression assigns true to the result if age is greater than 18 and salary are less than 1000.

``result = (age > 18) && (salary < 1000);``

The logical AND operator is also useful when specifying a range of values. For example, the mathematical notation 10 <= x <= 100means the x can have a value of range 10 to 100. To test if a number falls at a certain range, we can simply use the logical AND operator.

``inRange = (number <= 10) && (number >= 100);``

You will see more useful examples of the logical AND in a later lesson.

### Logical OR Operator (||)

The logical OR operator evaluates to true if either or both of the operators are true. It is the opposite of logical AND which evaluates to false if either or both of the operands are false. The following shows the truth table for the  logical OR operator.

X Y || Y
true true true
true false true
false true true
false false false

As you can see, an expression with a logical OR operator only evaluates to false if both of the operands are false. As an example, the following code  assigns true to the result if the student’s final grade is greater than or equal to 75 or his final exam’s grade is equal to 100.

``isPassed = (finalGrade >= 75) || (finalExam == 100);``

We will see some practical examples of using the logical OR operator in later lessons.

### Logical NOT Operator (!)

Unlike the other two logical operators, the logical NOT operator is a unary operator and only requires one operand. The logical NOT operator negates a  boolean expression or value. If the expression or value is true, it is turned to  false, and if false, it is turned to true. The following shows the truth table  for the logical NOT operator.

X !X
true false
false true

This code assigns true to result if age is not greater than or equal 18, or in other words if age is less than 18.

``isMinor = !(age >= 18);``

We will later see a more practical use of the operator in a later lesson.