Logical Operators in C/C++

C/C++ programming Logical Operators: In this tutorial, we are going to learn about the various logical operators with their usages, syntaxes and examples.
Submitted by IncludeHelp, on June 03, 2020

Logical Operators

Logical operators are used to check the combinations of the two conditional expressions.

The following are the types of logical operators.

  1. Logical AND (&&) Operator
  2. Logical OR (||) Operator
  3. Logical NOT (!) Operator

1) Logical AND (&&) Operator

Logical AND operator represented by the symbols "&&", it works with two operands and returns 1 if both operands are true (non-zero); 0, otherwise.

Note: Operands can be values, conditions, expressions, etc.

Syntax:

operand1 && operand2

Truth table:

operand1 operand2 operand1 && operand2
Non-zero Non-zero 1
Non-zero 0 0
0 Non-zero 0
0 0 0

C++ program to demonstrate the example of logical AND (&&) operator

#include <iostream>
using namespace std;

int main()
{
    int a = 10;
    int b = 20;

    // printing the values
    cout << "a : " << a << endl;
    cout << "b : " << b << endl;
    cout << endl;

    // Logical AND operations
    cout << "(a && b) : " << (a && b) << endl;
    cout << "(a && 0) : " << (a && 0) << endl;
    cout << "(0 && b) : " << (0 && b) << endl;
    cout << "(0 && 0) : " << (0 && 0) << endl;
    cout << endl;

    cout << "(a >= 10 && b <= 30) : " << (a >= 10 && b <= 30) << endl;
    cout << "(a == 10 && b == 20) : " << (a == 10 && b == 20) << endl;
    cout << "(a >= 10 && b == 30) : " << (a >= 10 && b == 30) << endl;
    cout << "(a < 10 && b < 20)   : " << (a < 10 && b < 20) << endl;

    return 0;
}

Output:

a : 10
b : 20

(a && b) : 1
(a && 0) : 0
(0 && b) : 0
(0 && 0) : 0

(a >= 10 && b <= 30) : 1
(a == 10 && b == 20) : 1
(a >= 10 && b == 30) : 0
(a < 10 && b < 20)   : 0

2) Logical OR (||) Operator

Logical OR operator represented with the symbols "||", it works with two operands and returns 1 if one (or both) operands are true (non-zero); 0, otherwise.

Syntax:

operand1 || operand2

Truth table:

operand1 operand2 operand1 && operand2
Non-zero Non-zero 1
Non-zero 0 1
0 Non-zero 1
0 0 0

C++ program to demonstrate the example of logical OR (||) operator

#include <iostream>
using namespace std;

int main()
{
    int a = 10;
    int b = 20;

    // printing the values
    cout << "a : " << a << endl;
    cout << "b : " << b << endl;
    cout << endl;

    // Logical OR operations
    cout << "(a || b) : " << (a || b) << endl;
    cout << "(a || 0) : " << (a || 0) << endl;
    cout << "(0 || b) : " << (0 || b) << endl;
    cout << "(0 || 0) : " << (0 || 0) << endl;
    cout << endl;

    cout << "(a >= 10 || b <= 30) : " << (a >= 10 || b <= 30) << endl;
    cout << "(a == 10 || b == 20) : " << (a == 10 || b == 20) << endl;
    cout << "(a >= 10 || b == 30) : " << (a >= 10 || b == 30) << endl;
    cout << "(a < 10 || b < 20)   : " << (a < 10 || b < 20) << endl;

    return 0;
}

Output:

a : 10
b : 20

(a || b) : 1
(a || 0) : 1
(0 || b) : 1
(0 || 0) : 0

(a >= 10 || b <= 30) : 1
(a == 10 || b == 20) : 1
(a >= 10 || b == 30) : 1
(a < 10 || b < 20)   : 0

3) Logical NOT (!) Operator

Logical NOT operator represented by the symbols "!", it works with one operand and returns 1 if the operand is zero;0, otherwise.

Syntax:

!operand

Truth table:

operand !operand
Non-zero 0
0 1

C++ program to demonstrate the example of logical NOT (!) operator

#include <iostream>
using namespace std;

int main()
{
    int a = 10;
    int b = 0;

    // printing the values
    cout << "a : " << a << endl;
    cout << "b : " << b << endl;
    cout << endl;

    cout << "!a : " << !a << endl;
    cout << "!b : " << !b << endl;
    cout << endl;

    // Logical NOT operations
    cout << "!(a || b) : " << !(a || b) << endl;
    cout << "!(a || 0) : " << !(a || 0) << endl;
    cout << "!(0 || b) : " << !(0 || b) << endl;
    cout << "!(0 || 0) : " << !(0 || 0) << endl;
    cout << endl;

    cout << "!(a >= 10 || b <= 30) : " << !(a >= 10 || b <= 30) << endl;
    cout << "!(a == 10 || b == 20) : " << !(a == 10 || b == 20) << endl;
    cout << "!(a >= 10 || b == 30) : " << !(a >= 10 || b == 30) << endl;
    cout << "!(a < 10 || b < 20)   : " << !(a < 10 || b < 20) << endl;

    return 0;
}

Output:

a : 10
b : 0

!a : 0
!b : 1

!(a || b) : 0
!(a || 0) : 0
!(0 || b) : 1
!(0 || 0) : 1

!(a >= 10 || b <= 30) : 0
!(a == 10 || b == 20) : 0
!(a >= 10 || b == 30) : 0
!(a < 10 || b < 20)   : 0





Comments and Discussions

Ad: Are you a blogger? Join our Blogging forum.





Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates


© https://www.includehelp.com some rights reserved.