The ternary operator helps you choose between two values quickly in one line. It makes simple decisions easy to write and read.
Ternary operator usage in Ruby
Introduction
Syntax
Ruby
condition ? value_if_true : value_if_false
The condition is a question that is either true or false.
If the condition is true, the code uses value_if_true. Otherwise, it uses value_if_false.
Examples
age is 18 or more. If yes, it returns "Adult", else "Child".Ruby
age >= 18 ? "Adult" : "Child"
score is greater than 50, otherwise "Fail".Ruby
score > 50 ? "Pass" : "Fail"
Ruby
is_raining ? "Take umbrella" : "No umbrella needed"
Sample Program
This program asks for your age, then uses the ternary operator to decide if you are an adult or a child. It prints the result.
Ruby
puts "Enter your age:" age = gets.to_i status = age >= 18 ? "Adult" : "Child" puts "You are a(n) #{status}."
Important Notes
The ternary operator is best for simple decisions. For complex choices, use full if-else blocks.
Remember to keep the code readable. If the line gets too long, break it into multiple lines.
Summary
The ternary operator is a short way to choose between two values.
It uses the format: condition ? value_if_true : value_if_false.
Use it to make your code cleaner for simple yes/no decisions.
Practice
1. What does the ternary operator
condition ? value_if_true : value_if_false do in Ruby?easy
Solution
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.Step 2: Identify its purpose
It returns the first value if the condition is true, otherwise the second value.Final Answer:
It chooses one of two values based on the condition's truth. -> Option AQuick 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
Solution
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.Step 2: Compare options
Only condition ? value_if_true : value_if_false matches the correct format:condition ? true_value : false_value.Final Answer:
condition ? value_if_true : value_if_false -> Option AQuick 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
Solution
Step 1: Evaluate the condition
The conditionage >= 18is true because age is 20.Step 2: Apply ternary operator
Since the condition is true, the expression returns "Adult".Final Answer:
Adult -> Option DQuick 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
Solution
Step 1: Check ternary operator syntax
The ternary operator requires a colon between the true and false values.Step 2: Identify missing colon
The code has "Pass" "Fail" without a colon, causing a syntax error.Final Answer:
Missing colon between true and false values -> Option BQuick 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.inspecthard
Solution
Step 1: Understand truthiness in Ruby
In Ruby, 0 and 1 are truthy, nil is falsy.Step 2: Apply ternary operator to each element
For each value: 0 (truthy) -> "Yes", 1 (truthy) -> "Yes", nil (falsy) -> "No", 5 (truthy) -> "Yes".Step 3: Check mapped results
The results array is ["Yes", "Yes", "No", "Yes"].Final Answer:
["Yes", "Yes", "No", "Yes"] -> Option CQuick 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
10 questions ~5 mineasy hard
