Bird
Raised Fist0
Cprogramming~5 mins

Ternary operator in C

Choose your learning style10 modes available
Introduction

The ternary operator lets you choose between two values quickly based on a condition. It makes simple if-else decisions shorter and easier to write.

When you want to assign a value based on a quick yes/no question.
When you want to print one of two messages depending on a condition.
When you want to return a value from a function based on a simple check.
Syntax
C
condition ? value_if_true : value_if_false;

The condition is checked first.

If condition is true, the expression returns value_if_true, otherwise it returns value_if_false.

Examples
Assigns the bigger of a or b to max.
C
int a = 10, b = 20;
int max = (a > b) ? a : b;
Sets result to "Even" if num is even, otherwise "Odd".
C
int num = 5;
char* result = (num % 2 == 0) ? "Even" : "Odd";
Prints "Equal" if a equals b, else prints "Not equal".
C
printf("%s\n", (a == b) ? "Equal" : "Not equal");
Sample Program

This program checks if age is 18 or more. If yes, it sets can_vote to "Yes", otherwise "No". Then it prints the answer.

C
#include <stdio.h>

int main() {
    int age = 18;
    char* can_vote = (age >= 18) ? "Yes" : "No";
    printf("Can vote? %s\n", can_vote);
    return 0;
}
OutputSuccess
Important Notes

The ternary operator is a shortcut for simple if-else statements.

Use it only for simple conditions to keep code readable.

Both value_if_true and value_if_false must be expressions that return a value.

Summary

The ternary operator chooses between two values based on a condition.

It is written as condition ? value_if_true : value_if_false.

Use it to make your code shorter and clearer for simple decisions.

Practice

(1/5)
1. What does the ternary operator condition ? value_if_true : value_if_false do in C?
easy
A. It chooses one of two values based on the condition's truth.
B. It creates a loop that runs twice.
C. It declares a new variable.
D. It comments out code.

Solution

  1. Step 1: Understand the ternary operator structure

    The ternary operator uses a condition followed by a question mark, then two values separated by a colon.
  2. Step 2: Determine its purpose

    It returns the first value if the condition is true, otherwise the second value.
  3. Final Answer:

    It chooses one of two values based on the condition's truth. -> Option A
  4. Quick Check:

    condition ? true_value : false_value = chooses value [OK]
Hint: Remember: condition ? true : false picks one value [OK]
Common Mistakes:
  • Thinking it creates loops
  • Confusing it with variable declaration
  • Assuming it comments code
2. Which of the following is the correct syntax for the ternary operator in C?
easy
A. condition : value_if_true ? value_if_false;
B. condition ? value_if_true : value_if_false;
C. condition ? value_if_true, value_if_false;
D. condition ? (value_if_true : value_if_false);

Solution

  1. Step 1: Recall ternary operator syntax

    The correct syntax is: condition ? value_if_true : value_if_false;
  2. Step 2: Check each option

    condition ? value_if_true : value_if_false; matches the correct syntax exactly; others have misplaced symbols or punctuation.
  3. Final Answer:

    condition ? value_if_true : value_if_false; -> Option B
  4. Quick Check:

    Syntax is condition ? true : false; [OK]
Hint: Remember: question mark before colon in ternary [OK]
Common Mistakes:
  • Swapping question mark and colon
  • Using comma instead of colon
  • Adding extra parentheses incorrectly
3. What is the output of this C code?
int x = 5;
int y = (x > 3) ? 10 : 20;
printf("%d", y);
medium
A. 10
B. 20
C. 5
D. Syntax error

Solution

  1. Step 1: Evaluate the condition (x > 3)

    Since x is 5, 5 > 3 is true.
  2. Step 2: Apply ternary operator

    Because condition is true, y is assigned 10.
  3. Final Answer:

    10 -> Option A
  4. Quick Check:

    (5 > 3) ? 10 : 20 = 10 [OK]
Hint: Check if condition is true, then pick first value [OK]
Common Mistakes:
  • Choosing the false value by mistake
  • Confusing variable values
  • Thinking it causes syntax error
4. Identify the error in this C code using the ternary operator:
int a = 10;
int b = 20;
int max = a > b ? a, b;
medium
A. Missing colon ':' between values
B. Incorrect variable declaration
C. No error, code is correct
D. Using comma instead of colon in ternary

Solution

  1. Step 1: Check ternary operator syntax

    The ternary operator requires a colon ':' between the two possible values.
  2. Step 2: Identify the mistake

    The code uses a comma ',' instead of a colon ':', which is incorrect syntax.
  3. Final Answer:

    Using comma instead of colon in ternary -> Option D
  4. Quick Check:

    Ternary needs ':' not ',' [OK]
Hint: Ternary uses ':' not ',' between values [OK]
Common Mistakes:
  • Using comma instead of colon
  • Forgetting colon entirely
  • Assuming code is correct
5. Given this code snippet, what will be the value of result?
int a = 0;
int b = 5;
int result = (a != 0) ? (b / a) : (b * 2);
printf("%d", result);
hard
A. 0
B. Division by zero error
C. 10
D. 5

Solution

  1. Step 1: Evaluate the condition (a != 0)

    a is 0, so (0 != 0) is false.
  2. Step 2: Apply ternary operator

    Since condition is false, result is assigned (b * 2) = 5 * 2 = 10.
  3. Final Answer:

    10 -> Option C
  4. Quick Check:

    Condition false, so result = b*2 = 10 [OK]
Hint: Check condition first to avoid division by zero [OK]
Common Mistakes:
  • Assuming division happens causing error
  • Ignoring false condition path
  • Confusing variable values
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard