
What is Conditional Operator in C?
The Conditional Operator in C is a ternary operator that evaluates a Boolean expression and returns one of two expressions based on the result of the evaluation. It is also known as the ternary operator because it takes three operands, unlike other operators that take two operands.
Syntax:
(condition) ? expression1 : expression2;Here, condition is a Boolean expression that is evaluated. If the result of condition is true, expression1 is executed, otherwise expression2 is executed.
Examples of Conditional Operator in C:
Example 1:
Checking which number is greater.
#include <stdio.h>
int main() {
int x = 5, y = 10, max;
max = (x > y) ? x : y;
printf("The maximum number is %d", max);
return 0;
}Output:
The maximum number is 10Explanation:
Here, we compare x and y using the conditional operator. If x is greater than y, the value of x is assigned to max. Otherwise, the value of y is assigned to max. In this case, y is greater than x, so max is assigned the value of y, which is 10.
Example 2:
Checking if the number is Even or Odd:
#include <stdio.h>
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
(num % 2 == 0) ? printf("Even number") : printf("Odd number");
return 0;
}Output 1:
Enter a number: 6
Even numberOutput 2:
Enter a number: 7
Odd numberExplanation:
In above example, we take an input from the user and use the conditional operator to check if the input is even or odd. If the input is even, the message “Even number” is printed, otherwise the message “Odd number” is printed.
Rules to follow while using Conditional Operator in C:
- The condition must be a Boolean expression.
- The expressions returned by the operator must have the same data type.
- The conditional operator has a lower precedence than the arithmetic and logical operators. Parentheses should be used to clarify the order of evaluation if necessary.
Modifications that can be made while using the Conditional Operator in C:
- The expressions returned by the operator can be function calls, variable assignments, or any valid expression.
- The operator can be used to simplify if-else statements with a single statement in each block. For example, instead of writing:
if (x > y) {
z = x;
} else {
z = y;
}- We can write like this:
z = (x > y) ? x : y;- The conditional operator can be used to initialize variables. For example:
int x = (y > 0) ? y : 0;- Here, if
yis greater than zero,xis assigned the value ofy. Otherwise,xis assigned the value of zero. - The conditional operator can be used in conjunction with the comma operator to execute multiple expressions in a single statement. For example:
int x = (y > 0) ? (z++, y) : (w++, z);- Here, if
yis greater than zero,zis incremented and the value ofyis assigned tox. Otherwise,wis incremented and the value ofzis assigned tox.