# C - Logical Operators

C Programming

In this tutorial we will learn about logical operators in C programming language.

We use the logical operators to test more than one condition.

Logical expressions yields either non-zero (true) or zero (false) value.

There are three logical operators in C.

OperatorDescription
&&Logical AND
||Logical OR
!Logical NOT

## Logical AND

The logical AND `&&` operator will give non-zero (true) value if both the operands are non-zero (true). Otherwise, it will return zero (false).

Truth table of logical AND operator.

ABA && B
000
010
100
111

In the following example we are checking if the two logical expressions are both true. If they are then we will execute the if-block otherwise, the else-block.

``````#include <stdio.h>
int main(void)
{
int logical_expression_1 = 10 > 0;	//this will give non-zero (true) value
int logical_expression_2 = 20 <= 100;	//this will give non-zero (true) value

if (logical_expression_1 && logical_expression_2) {
printf("Success\n");
}
else {
printf("No!!!\n");
}
return 0;
}
``````

Output

``````Success
``````

## Logical OR

The logical OR `||` operator will give non-zero (true) value if any one of the operand is non-zero (true). If both are zero then it will return zero (false).

Truth table of logical OR operator.

ABA || B
000
011
101
111

In the following example we are checking if any one of the two logical expressions is non-zero (true). If yes, then we will execute the if-block otherwise, the else-block.

``````#include <stdio.h>
int main(void)
{
int logical_expression_1 = 10 > 0;	//this will give non-zero (true) value
int logical_expression_2 = 20 >= 100;	//this will give zero (false) value

if (logical_expression_1 || logical_expression_2) {
printf("Success\n");
}
else {
printf("No!!!\n");
}
return 0;
}
``````

Output

``````Success
``````

## Logical NOT

The logical NOT `!` operator will give non-zero (true) value if the operand is zero (false). And it will return zero (false) value if the operand is non-zero (true).

Logical NOT operator works with only one operand.

Truth table of logical NOT operator.

A!A
01
10

In the following example we are checking if the logical expression is zero (false). If yes, then we will execute the if-block otherwise, the else-block.

``````#include <stdio.h>
int main(void)
{
int logical_expression = 10 < 0;	//this will give zero (false) value

if (!logical_expression) {
printf("Success\n");
}
else {
printf("No!!!\n");
}
return 0;
}
``````

Output

``````Success
``````