Operators: Logical Operators
Learn about the logical operators in C++ and how to use them.
We'll cover the following...
In this lesson, we’ll learn about the C++ logical operators.
Logical operators
Logical operators combine conditional expressions. A logical operator is used to extend a logical condition. We can combine many conditions by logical operators to make a complex condition. There are three types of logical operators:
- AND operation represented by the symbol
&& - OR operation represented by the symbol
|| - NOT operation represented by the symbol
!
We can see the examples of the logical operators in the table below:
Logical Operator
Symbol | Meaning | Example of syntax |
AND | (condition1 && condition2) If both conditions are true, then it is true; otherwise false |
|
OR | (condition1 || condition2) If one condition is true, then it is true; otherwise false |
|
NOT | !(condition1 && condition2) !(condition1 || condition2) If a condition is true, then the NOT operator will make it false(reverse logical state) |
|
In C++, a nonzero value in any condition is true, and zero is considered as false.
Short-circuiting
Sometimes when we use the AND (&&) and OR (||) operators in an expression, the entire expression need not be evaluated as soon as the first condition in && is false or the first || is true. This is called short-circuiting.
Following are the two situations with logical operators when the right hand side of the expression is not evaluated:
-
When the first condition in
&&is already false, the rest of the conditions need not be evaluated.For example,
(4 > 5) && (4 < 7)
The condition on the right-hand side (4 < 7) will not be evaluated in the expression above since with an && operator, both conditions need to be true. But the first condition (4 > 5) of the AND operator is already false so the second condition will not be evaluated.
-
When the
||operator is used and the first condition becomes true, the rest of the conditions need not be evaluated.For example,
(4 == 4) || (4 < 7)
The right-hand side condition (4 < 7) will not be evaluated in the expression above because the first condition (4 == 4) of the OR operator is already true.
What is wrong with the following code:
The code below makes use of an
ifstatement, which is a conditional statement. If the condition within the statement is true, the code inside the curly braces,{}, is executed. If it is false, the code inside{}is not executed. We’ll learn more aboutifstatements in further detail later on.
int n, d;
cout << "Enter a number and its divisor: ";
cin>>n>>d;
if(n%d==0 && d!=0) // the second condition was added to stop divide-by-zero error
{
cout << n << " is divisible by "<<d<<endl;
}