Bird
Raised Fist0
Rubyprogramming~10 mins

Ternary operator usage in Ruby - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Ternary operator usage
Evaluate condition
Yes↓
Return value if true
↓
End
No↓
Return value if false
↓
End
The ternary operator checks a condition and returns one value if true, another if false, all in one line.
Execution Sample
Ruby
age = 20
status = age >= 18 ? "Adult" : "Minor"
puts status
This code checks if age is 18 or more, then sets status to 'Adult' or 'Minor' accordingly and prints it.
Execution Table
StepCondition (age >= 18)ResultValue assigned to statusOutput
120 >= 18true"Adult"none
2N/AN/AN/Aprints "Adult"
💡 Condition evaluated once; status assigned; output printed; program ends.
Variable Tracker
VariableStartAfter Step 1After Step 2 (final)
ageundefined2020
statusundefined"Adult""Adult"
Key Moments - 2 Insights
Why does the ternary operator return a value instead of running code blocks?
The ternary operator is an expression that returns a value immediately based on the condition, as shown in execution_table step 1 where it assigns "Adult" or "Minor" directly to status.
Can the ternary operator replace an if-else statement?
Yes, for simple assignments or returns. The example shows how it replaces if-else by assigning status in one line, making code shorter and clearer.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what value is assigned to status at step 1?
A20
B"Adult"
C"Minor"
Dundefined
💡 Hint
Check the 'Value assigned to status' column in execution_table row 1.
At which step is the output printed?
ANo output is printed
BStep 1
CStep 2
DBefore step 1
💡 Hint
Look at the 'Output' column in execution_table; printing happens after assignment.
If age was 16, what would status be assigned to according to the execution flow?
A"Minor"
B"Adult"
C16
Dundefined
💡 Hint
Refer to the condition in execution_table and how it decides the assigned value.
Concept Snapshot
Ternary operator syntax: condition ? value_if_true : value_if_false
Evaluates condition once.
Returns value_if_true if condition is true.
Returns value_if_false if condition is false.
Used for simple conditional assignments or returns.
Makes code concise and readable.
Full Transcript
The ternary operator in Ruby is a short way to write an if-else that returns a value. It checks a condition, then returns one value if true, another if false. For example, age >= 18 ? "Adult" : "Minor" assigns "Adult" if age is 18 or more, else "Minor". This operator evaluates the condition once, then immediately returns the correct value. It is useful for simple decisions in one line, making code shorter and easier to read. The execution table shows the condition check, the value assigned, and when output is printed. Beginners often wonder why it returns a value and how it replaces if-else. The key is that it is an expression, not a statement, so it fits where a value is needed.

Practice

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

Solution

  1. Step 1: Understand the ternary operator format

    The ternary operator uses a condition followed by a question mark, then two values separated by a colon.
  2. Step 2: Identify 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: Think: condition true? pick first value, else second [OK]
Common Mistakes:
  • Confusing ternary with loops
  • Thinking it defines methods
  • Misunderstanding the colon as comment
2. Which of the following is the correct syntax for a ternary operator in Ruby?
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 places a question mark after the condition, then the true value, a colon, then the false value.
  2. Step 2: Compare options

    Only condition ? value_if_true : value_if_false matches the correct format: condition ? true_value : false_value.
  3. Final Answer:

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

    Syntax = condition ? true : false [OK]
Hint: Remember: question mark before true, colon before false [OK]
Common Mistakes:
  • Swapping question mark and colon
  • Using semicolon instead of colon
  • Separating values with comma
3. What is the output of this Ruby code?
age = 20
puts age >= 18 ? "Adult" : "Minor"
medium
A. Minor
B. 20
C. SyntaxError
D. Adult

Solution

  1. Step 1: Evaluate the condition

    The condition age >= 18 is true because age is 20.
  2. Step 2: Apply ternary operator

    Since the condition is true, the expression returns "Adult".
  3. Final Answer:

    Adult -> Option D
  4. Quick Check:

    20 >= 18 ? "Adult" : "Minor" = "Adult" [OK]
Hint: Check condition true? pick first value, else second [OK]
Common Mistakes:
  • Choosing the false value by mistake
  • Printing the variable instead of result
  • Expecting syntax error
4. Identify the error in this Ruby code using a ternary operator:
score = 85
result = score > 60 ? "Pass" "Fail"
puts result
medium
A. Missing question mark after condition
B. Missing colon between true and false values
C. Ternary operator cannot be used with strings
D. Wrong variable name 'score'

Solution

  1. Step 1: Check ternary operator syntax

    The ternary operator requires a colon between the true and false values.
  2. Step 2: Identify missing colon

    The code has "Pass" "Fail" without a colon, causing a syntax error.
  3. Final Answer:

    Missing colon between true and false values -> Option B
  4. Quick Check:

    Syntax = condition ? true_value : false_value [OK]
Hint: Always put colon between true and false parts [OK]
Common Mistakes:
  • Omitting colon
  • Using comma instead of colon
  • Forgetting question mark
5. Given this Ruby code, what will be the output?
values = [0, 1, nil, 5]
results = values.map { |v| v ? "Yes" : "No" }
puts results.inspect
hard
A. ["No", "Yes", "No", "Yes"]
B. ["No", "No", "No", "No"]
C. ["Yes", "Yes", "No", "Yes"]
D. ["Yes", "No", "Yes", "No"]

Solution

  1. Step 1: Understand truthiness in Ruby

    In Ruby, 0 and 1 are truthy, nil is falsy.
  2. Step 2: Apply ternary operator to each element

    For each value: 0 (truthy) -> "Yes", 1 (truthy) -> "Yes", nil (falsy) -> "No", 5 (truthy) -> "Yes".
  3. Step 3: Check mapped results

    The results array is ["Yes", "Yes", "No", "Yes"].
  4. Final Answer:

    ["Yes", "Yes", "No", "Yes"] -> Option C
  5. Quick Check:

    Truthy values = "Yes", nil = "No" [OK]
Hint: Remember: only nil and false are falsey in Ruby [OK]
Common Mistakes:
  • Thinking 0 is falsy
  • Confusing nil with false
  • Misreading map block
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