# C++ Logical Operators

C++ Logical Operators are used to test the conditions in a program and make decisions based on the result of the conditions. They allow you to evaluate multiple conditions and take different actions based on the results. In C++, there are three logical operators: `&&`

, `||`

, and `!`

.

Operator | Name | Description | Example |
---|---|---|---|

&& | Logical AND | Returns true if both operands are true, otherwise returns false | (5 > 4) && (3 < 4) returns true |

|| | Logical OR | Returns true if either of the operands is true, otherwise returns false | (5 > 4) |

! | Logical NOT | Reverses the logical state of its operand. If a condition is true, then Logical NOT operator will make it false | !(5 > 4) returns false |

### Logical AND (`&&`

)

The logical AND operator returns `true`

if both operands are `true`

, otherwise it returns `false`

. In other words, both conditions need to be true for the expression to evaluate to `true`

. The operator is represented by two ampersands `&&`

.

`1int x = 5, y = 6; 2if (x > 4 && y > 5) { 3 cout << "Both conditions are true." << endl; 4}`

In the above example, the condition `x > 4 && y > 5`

returns `true`

because both conditions are true.

### Logical OR (`||`

)

The logical OR operator returns `true`

if either of the operands is `true`

, otherwise it returns `false`

. In other words, at least one of the conditions needs to be true for the expression to evaluate to `true`

. The operator is represented by two vertical lines `||`

.

`1int x = 5, y = 6; 2if (x > 4 || y < 5) { 3 cout << "At least one of the conditions is true." << endl; 4}`

In the above example, the condition `x > 4 || y < 5`

returns `true`

because at least one of the conditions is true.

### Logical NOT (`!`

)

The logical NOT operator reverses the logical state of its operand. If a condition is `true`

, then the logical NOT operator will make it `false`

. If a condition is `false`

, then the logical NOT operator will make it `true`

. The operator is represented by an exclamation point `!`

.

`1int x = 5, y = 6; 2if (!(y < 5)) { 3 cout << "The condition is false." << endl; 4}`

In the above example, the condition `y < 5`

is `false`

, so the expression `!(y < 5)`

returns `true`

.

`1#include <iostream> 2using namespace std; 3 4int main() { 5 int x = 5, y = 6; 6 bool z = (x > 4) && (y > 5); // z will be true because both conditions are true 7 cout << "The value of z is: " << z << endl; 8 9 z = (x > 4) || (y < 5); // z will be true because at least one of the conditions is true 10 cout << "The value of z is: " << z << endl; 11 12 z = !(y < 5); // z will be true because the condition is false 13 cout << "The value of z is: " << z << endl; 14 return 0; 15}`

In the above example, the logical AND (`&&`

) operator is used to check if both conditions `(x > 4)`

and `(y > 5)`

are true. If both conditions are true, the expression returns `true`

. Similarly, the logical OR (`||`

) operator is used to check if either of the conditions `(x > 4)`

or `(y < 5)`

is true. If either condition is true, the expression returns `true`

. The logical NOT (`!`

) operator is used to reverse the logical state of the operand. In this case, the condition `(y < 5)`

is false, so the expression `!(y < 5)`

returns `true`

.