0
0
CppHow-ToBeginner · 3 min read

How to Use Logical Operators in C++: Syntax and Examples

In C++, logical operators are used to combine or invert boolean expressions. Use && for AND, || for OR, and ! for NOT to control program flow based on multiple conditions.
📐

Syntax

Logical operators in C++ combine or invert boolean values (true or false). Here are the main operators:

  • &&: Logical AND - true if both sides are true.
  • ||: Logical OR - true if at least one side is true.
  • !: Logical NOT - inverts the boolean value.

They are used in conditions like if statements to decide which code runs.

cpp
bool a = true;
bool b = false;

bool and_result = a && b;  // false
bool or_result = a || b;   // true
bool not_result = !a;      // false
💻

Example

This example shows how to use logical operators to check multiple conditions in an if statement.

cpp
#include <iostream>

int main() {
    bool hasKey = true;
    bool knowsPassword = false;

    if (hasKey && knowsPassword) {
        std::cout << "Access granted." << std::endl;
    } else if (hasKey || knowsPassword) {
        std::cout << "Partial access." << std::endl;
    } else {
        std::cout << "Access denied." << std::endl;
    }

    if (!knowsPassword) {
        std::cout << "Please learn the password." << std::endl;
    }

    return 0;
}
Output
Partial access. Please learn the password.
⚠️

Common Pitfalls

Common mistakes when using logical operators include:

  • Using a single & or | instead of && or || for logical operations (single ones are bitwise operators).
  • Not using parentheses to group conditions, which can cause unexpected results due to operator precedence.
  • Confusing assignment = with equality == inside conditions.
cpp
/* Wrong: uses bitwise AND instead of logical AND */
if (a & b) {
    // This is not the same as 'a && b'
}

/* Correct: use logical AND */
if (a && b) {
    // Proper logical check
}

/* Wrong: missing parentheses */
if (a && b || c) {
    // This is evaluated as (a && b) || c
}

/* Better: use parentheses for clarity */
if (a && (b || c)) {
    // Clear grouping
}
📊

Quick Reference

OperatorMeaningExampleResult
&&Logical ANDtrue && falsefalse
||Logical ORtrue || falsetrue
!Logical NOT!truefalse

Key Takeaways

Use && for logical AND, || for logical OR, and ! for logical NOT in C++.
Always use parentheses to group conditions for clear logic.
Avoid confusing bitwise (&, |) with logical (&&, ||) operators.
Check conditions carefully to prevent assignment (=) mistakes inside if statements.