Conditional operator in C

Conditional operator is a ternary operator used to evaluate an expression based on some condition. It is a replacement of short if…else statement.

Syntax of conditional operator

<conditional-expression> ? <true-expression> : <false-expression>
  • It accepts three operands, conditional-expression, true-expression and false-expression.
  • The conditional-expression is followed by ? symbol, followed by true-expression. true-expression is followed by : symbol and false-expression.
  • If conditional-expression is true then true-expression gets evaluated otherwise false-expression. In no case both the expressions are evaluated.

The above conditional expression is equivalent to –


if(conditional-expression)
{
    // true-expression
}
else
{
    // false-expression
}

Example program of conditional operator

Consider the below program to find maximum between two numbers using conditional operator.

#include <stdio.h>

int main()
{
    int num1 = 10;
    int num2 = 20;

    /*
     * If (num > num2) then
     *    assign num1 to max
     * else
     *    assign num2 to max
     */
    int max = (num1 > num2) ? num1 : num2;

    printf("Maximum is %d.", max);

    return 0;
}

In the above program prints Maximum is 20.. Since the condition (num1 > num2) is false therefore false-expression gets evaluated assigning 20 to max.

Practice to learn – Conditional operator programming exercises and solutions

Important note: Always feel free to transform single if...else statement to conditional operator expression, if it makes your code more readable and clear. However, it is never recommended to transform a nested if…else…if or ladder if…else statement to conditional operator expression.