Skip to content
Home » C++ Logical Operators

C++ Logical Operators

    The C++ needs logical operators to control the flow of the program. The expressions involving logical operators evaluate to boolean value – true or false. Then the program makes decisions based on the outcome.

    There are three types of logical operators.

    Logical OperatorsDescription
    &&Logical AND
    ||Logical OR
    !Not

    Note that there is difference between bitwise AND and logical AND. The same applied to bitwise OR, complement.

    Logical AND

    The two operands of logical expression evaluates to true if both the operands are true, otherwise it is false.

    A logical expression with two or more logical expression as operands is called a compound expression. When the two operands are individual expressions then each of them must evaluate to true so that the compound logical expression is true.

    (expression1)  && (expression2)

    The data type for both the expression must be same. If expression1 is integer, then expression must be an integer. In case, one of the expression is character data type, then it is automatically converted to integer equivalent by the compiler.

    (a && 34)

    becomes

    (97 && 34)

    The ASCII value for ‘a’ is 97.

    The all possible outcome of logical AND operation are:

    Expression1Expression2Output
    truetruetrue
    truefalsefalse
    falsetruefalse
    falsefalsefalse
    Table 1 – AND Outputs

    Logical OR

    The logical expression with logical OR operator evaluates to true if at least one operand is true. Otherwise, it is false.

    A compound logical expression with two or more expression gives a boolean output – true if one of the expressions evaluates to true. The data type of each operand must be same except char type.

    (expression1) && (expression2)

    All possible outcome of the expression is given below.

    Expression1Expression2Output
    truetruetrue
    truefalsetrue
    falsetruetrue
    falsefalsefalse
    Table 2 – OR Outputs

    Not Operator

    The Not operation is a special operation which negates the boolean value of any expression or variable.

    expression1 = true

    then

    !(expression1) = false

    The Not operator can be use anywhere to negate the existing value of a variable or expression. The table below gives all combination of output for the Not operator.

    Expression1Description
    truefalse
    falsetrue
    Table 3 – Not Outputs

    Example Program: Logical Operators

    #include <cstdlib>
    #include <iostream>
    using namespace std;
    int main()
    {
        //Variable Declarations
        
        int a,b,c,d;
        
        //Variable Initialization
        
        a = 100;
        b = 90;
        
        c = 30;
        d = 20;
        
        // Logical AND
        
        if( (a > b) && (c > d))
        {
            cout << "This logical AND statement has value = True" << "\n";
        }
        else 
        {
             cout << "This logical AND statement has value = False" << "\n";
        }
        
        // Logical OR
        
         if( (a < b) || (c > d))
        {
            cout << "This logical OR statement has value = True" << "\n";
        }
        else 
        {
             cout << "This logical OR statement has value = False" << "\n";
        }
        
        // NOT operation
        
         if( !(a > b))
        {
            cout << "This NOT statement has value = True" << "\n";
        }
        else 
        {
             cout << "This NOT statement has value = False" << "\n";
        }
        system("PAUSE");
        return EXIT_SUCCESS;
    }

    Output:

    This logical AND statement has value = True
    This logical OR statement has value = True
    This NOT statement has value = False