KEMBAR78
[ITP - Lecture 09] Conditional Operator in C/C++ | PDF
The Conditional Operators Intro to Programming
MUHAMMAD HAMMAD WASEEM 1
Conditional Operators
The conditional operators ? and : are sometimes called ternary operators since they take
three arguments. In fact, they form a kind of foreshortened if-then-else. Their general form is,
expression 1 ? expression 2 : expression 3
What this expression says is: “if expression 1 is true (that is, if its value is non-zero), then the
value returned will be expression 2, otherwise the value returned will be expression 3”.
Let us understand this with the help of a few examples:
a. int x, y ;
scanf ( "%d", &x ) ;
y = ( x > 5 ? 3 : 4 ) ;
This statement will store 3 in y if x is greater than 5, otherwise it will store 4 in y.
The equivalent if statement will be,
if ( x > 5 )
y = 3 ;
else
y = 4 ;
b. char a ;
int y ;
scanf ( "%c", &a ) ;
y = ( a >= 65 && a <= 90 ? 1 : 0 ) ;
Here 1 would be assigned to y if a>=65&&a<=90 evaluates to true, otherwise 0 would be
assigned.
The following points may be noted about the conditional operators:
1. It’s not necessary that the conditional operators should be used only in arithmetic statements. This
is illustrated in the following examples:
Ex.: int i;
scanf ( "%d", &i ) ;
(i == 1 ? printf("Amit") : printf ("All and sundry"));
Ex.: char a = 'z';
printf ( "%c" , ( a >= 'a' ? a : '!' ) ) ;
2. The conditional operators can be nested as shown below.
int big, a, b, c ;
big = ( a > b ? ( a > c ? 3: 4 ) : ( b > c ? 6: 8 ) ) ;
3. Check out the following conditional expression:
a > b ? g = a : g = b ;
This will give you an error ‘Lvalue Required’. The error can be overcome by enclosing the
statement in the : part within a pair of parenthesis. This is shown below:
a > b ? g = a : ( g = b ) ;
In absence of parentheses the compiler believes that b is being assigned to the result of the
expression to the left of second =. Hence it reports an error.
The Conditional Operators Intro to Programming
MUHAMMAD HAMMAD WASEEM 2
Limitations of Conditional Operator:
The limitation of the conditional operators is that after the ? or after the : only one C statement
can occur. In practice rarely is this the requirement. Therefore, in serious C programming conditional
operators aren’t as frequently used as the if-else.

[ITP - Lecture 09] Conditional Operator in C/C++

  • 1.
    The Conditional OperatorsIntro to Programming MUHAMMAD HAMMAD WASEEM 1 Conditional Operators The conditional operators ? and : are sometimes called ternary operators since they take three arguments. In fact, they form a kind of foreshortened if-then-else. Their general form is, expression 1 ? expression 2 : expression 3 What this expression says is: “if expression 1 is true (that is, if its value is non-zero), then the value returned will be expression 2, otherwise the value returned will be expression 3”. Let us understand this with the help of a few examples: a. int x, y ; scanf ( "%d", &x ) ; y = ( x > 5 ? 3 : 4 ) ; This statement will store 3 in y if x is greater than 5, otherwise it will store 4 in y. The equivalent if statement will be, if ( x > 5 ) y = 3 ; else y = 4 ; b. char a ; int y ; scanf ( "%c", &a ) ; y = ( a >= 65 && a <= 90 ? 1 : 0 ) ; Here 1 would be assigned to y if a>=65&&a<=90 evaluates to true, otherwise 0 would be assigned. The following points may be noted about the conditional operators: 1. It’s not necessary that the conditional operators should be used only in arithmetic statements. This is illustrated in the following examples: Ex.: int i; scanf ( "%d", &i ) ; (i == 1 ? printf("Amit") : printf ("All and sundry")); Ex.: char a = 'z'; printf ( "%c" , ( a >= 'a' ? a : '!' ) ) ; 2. The conditional operators can be nested as shown below. int big, a, b, c ; big = ( a > b ? ( a > c ? 3: 4 ) : ( b > c ? 6: 8 ) ) ; 3. Check out the following conditional expression: a > b ? g = a : g = b ; This will give you an error ‘Lvalue Required’. The error can be overcome by enclosing the statement in the : part within a pair of parenthesis. This is shown below: a > b ? g = a : ( g = b ) ; In absence of parentheses the compiler believes that b is being assigned to the result of the expression to the left of second =. Hence it reports an error.
  • 2.
    The Conditional OperatorsIntro to Programming MUHAMMAD HAMMAD WASEEM 2 Limitations of Conditional Operator: The limitation of the conditional operators is that after the ? or after the : only one C statement can occur. In practice rarely is this the requirement. Therefore, in serious C programming conditional operators aren’t as frequently used as the if-else.