# Operators : Conditional Operator/Ternary Operator

0 like 0 dislike
362 views

Evaluates its ﬁrst operand, and, if the resulting value is not equal to zero, evaluates its second operand. Otherwise, it evaluates its third operand, as shown in the following example:

0 like 0 dislike
by Goeduhub's Expert (9.3k points)

Evaluates its ﬁrst operand, and, if the resulting value is not equal to zero, evaluates its second operand. Otherwise, it evaluates its third operand, as shown in the following example:

a = b ? c : d;

is equivalent to:

if (b)

a = c;

else

a = d;

This pseudo-code represents it : condition ? value_if_true : value_if_false. Each value can be the result of an evaluated expression.

int x = 5;

int y = 42;

printf("%i, %i\n", 1 ? x : y, 0 ? x : y); /* Outputs "5, 42" */

The conditional operator can be nested. For example, the following code determines the bigger of three numbers:

big= a > b ? (a > c ? a : c)

: (b > c ? b : c);

The following example writes even integers to one ﬁle and odd integers to another ﬁle:

#include<stdio.h>

int main()

{

FILE *even, *odds; int n = 10;

size_t k = 0;

even = fopen("even.txt", "w");

odds = fopen("odds.txt", "w");

for(k = 1; k < n + 1; k++)

{

k%2==0 ? fprintf(even, "\t%5d\n", k)

: fprintf(odds, "\t%5d\n", k);

}

fclose(even);

fclose(odds);

return 0;

The conditional operator associates from right to left. Consider the following:

exp1 ? exp2 : exp3 ? exp4 : exp5

As the association is from right to left, the above expression is evaluated as

exp1 ? exp2 : ( exp3 ? exp4 : exp5 )

Learn & Improve In-Demand Data Skills Online in this Summer With  These High Quality Courses[Recommended by GOEDUHUB]:-

Best Data Science Online Courses[Lists] on:-

Claim your 10 Days FREE Trial for Pluralsight.