C++Logical Operators in Conditions
Logical Operators in Conditions
You can combine or reverse conditions usinglogical operators. These work together withif,else, andelse if to build more complex decisions.
&&(AND) - all conditions must be true||(OR) - at least one condition must be true!(NOT) - reverses a condition (true→false,false→true)
AND (&&)
Use AND (&&) whenboth conditions must be true:
Example
Test ifa is greater thanb,and ifc is greater thana:
int a = 200;int b = 33;int c = 500;if (a > b && c > a) { cout << "Both conditions are true";}OR (||)
Use OR (||) whenat least one of the conditions can be true:
Example
Test ifa is greater thanb,or ifa is greater thanc:
int a = 200;int b = 33;int c = 500;if (a > b || a > c) { cout << "At least one condition is true";}NOT (!)
The NOT operator (!)reverses a condition:
- If a condition is
true,!makes itfalse. - If a condition is
false,!makes ittrue.
This is useful when you want to check that somethingis not the case:
Example
Test ifa isnot greater thanb:
int a = 33;int b = 200;if (!(a > b)) { cout << "a is NOT greater than b";}Real-Life Example
In real programs, logical operators are often used for access control. For example, to get access to a system, there are specific requirements:
You must be logged in, and then you either need to be an admin, or have a high security clearance (level 1 or 2):
Example
bool isLoggedIn = true;bool isAdmin = false;int securityLevel = 3; // 1 = highestif (isLoggedIn && (isAdmin || securityLevel <= 2)) { cout << "Access granted.";} else { cout << "Access denied.";}// Try changing securityLevel and isAdmin to test different outcomes:// securityLevel 1 = Access granted// securityLevel 2 = Access granted// securityLevel 3 = Access denied// securityLevel 4 = Access denied// If isAdmin = true, access is granted.
