What is the limitation of the conditional operator (? :) in C?

This question was previously asked in
RRB JE ECE 22 Apr 2025 Shift 2 CBT 2 Official Paper
View all RRB JE Papers >
  1. It cannot be nested.
  2. It can only be used with integer values.
  3. It allows only one statement after ? and :.
  4. It cannot be used inside a loop.

Answer (Detailed Solution Below)

Option 3 : It allows only one statement after ? and :.
Free
General Science for All Railway Exams Mock Test
2.1 Lakh Users
20 Questions 20 Marks 15 Mins

Detailed Solution

Download Solution PDF

Explanation:

The conditional operator (?:) in C is a ternary operator that is used to evaluate a condition and return one of two values based on whether the condition is true or false. It is often used as a shorthand for the if-else statement, particularly when assigning values based on a condition. The syntax of the conditional operator is:

condition? expression1 : expression2

Here, if the condition evaluates to true, expression1 is evaluated and returned; otherwise, expression2 is evaluated and returned.

Correct Option Analysis:

The correct answer is:

Option 3: It allows only one statement after? and :.

This limitation means that only a single expression can be written after the ? and : in the conditional operator. It cannot directly contain multiple statements or a block of code. For example:

int a = 10, b = 20;
int max = (a > b) ? a : b;

In this example, the conditional operator checks whether a is greater than b. If true, it returns a; otherwise, it returns b. Notice that after the ? and :, only a single expression (either a or b) is allowed.

To include multiple statements, you would need to use the if-else construct instead of the conditional operator. For example:

if (a > b) {
     max = a;
}
else {
     max = b;
}

The conditional operator’s limitation to single expressions can sometimes lead to the need for creative workarounds or the choice of more verbose but clearer constructs such as if-else statements.

Additional Information

To further understand the analysis, let’s evaluate the other options:

Option 1: It cannot be nested.

This option is incorrect. The conditional operator can indeed be nested, although it can lead to code that is difficult to read and maintain. An example of nesting the conditional operator is:

int result = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);

This nested conditional operator checks which of the three variables a, b, and c is the largest and assigns it to result.

Option 2: It can only be used with integer values.

This option is incorrect. The conditional operator can be used with various data types, not just integers. It can be employed with floating-point numbers, characters, pointers, and even user-defined types like structures and classes. For example:

float x = 5.5, y = 2.3;
float min = (x < y) ? x : y;

In this case, the conditional operator is used with floating-point numbers to determine the smaller value between x and y.

Option 4: It cannot be used inside a loop.

This option is incorrect. The conditional operator can be used inside loops, just like any other expression. For example, in a loop that finds the maximum value in an array:

int max = arr[0];
for (int i = 1; i < n; ++i) {
     max = (arr[i] > max) ? arr[i] : max;
}

In this example, the conditional operator is used within a for loop to update the maximum value found in the array.

Latest RRB JE Updates

Last updated on Jun 7, 2025

-> RRB JE CBT 2 answer key 2025 for June 4 exam has been released at the official website.

-> Check Your Marks via RRB JE CBT 2 Rank Calculator 2025

-> RRB JE CBT 2 admit card 2025 has been released. 

-> RRB JE CBT 2 city intimation slip 2025 for June 4 exam has been released at the official website.

-> RRB JE CBT 2 Cancelled Shift Exam 2025 will be conducted on June 4, 2025 in offline mode. 

-> RRB JE CBT 2 Exam Analysis 2025 is Out, Candidates analysis their exam according to Shift 1 and 2 Questions and Answers.

-> The RRB JE Notification 2024 was released for 7951 vacancies for various posts of Junior Engineer, Depot Material Superintendent, Chemical & Metallurgical Assistant, Chemical Supervisor (Research) and Metallurgical Supervisor (Research). 

-> The selection process includes CBT 1, CBT 2, and Document Verification & Medical Test.

-> The candidates who will be selected will get an approximate salary range between Rs. 13,500 to Rs. 38,425.

-> Attempt RRB JE Free Current Affairs Mock Test here

-> Enhance your preparation with the RRB JE Previous Year Papers

Get Free Access Now
Hot Links: teen patti real cash apk teen patti master apk teen patti rummy teen patti joy teen patti club