Bird
Raised Fist0
Rubyprogramming~5 mins

Ternary operator in Ruby

Choose your learning style10 modes available
Introduction
The ternary operator helps you choose between two values quickly in one line, making your code shorter and easier to read.
When you want to assign a value based on a simple condition.
When you need a quick if-else decision inside another expression.
When you want to return one of two values without writing a full if-else block.
Syntax
Ruby
condition ? value_if_true : value_if_false
The condition is checked first; if true, the first value is used.
If the condition is false, the second value is used.
Examples
Returns "Adult" if age is 18 or more, otherwise "Child".
Ruby
age >= 18 ? "Adult" : "Child"
Returns "Pass" if score is greater than 50, else "Fail".
Ruby
score > 50 ? "Pass" : "Fail"
Suggests taking an umbrella if it is raining.
Ruby
is_raining ? "Take umbrella" : "No umbrella needed"
Sample Program
This program asks for your age and uses the ternary operator to print if you are an adult or a child.
Ruby
puts "Enter your age:"
age = gets.to_i
result = age >= 18 ? "You are an adult." : "You are a child."
puts result
OutputSuccess
Important Notes
Use ternary operator only for simple conditions to keep code readable.
Avoid complex expressions inside ternary operators to prevent confusion.
Summary
The ternary operator is a short way to write if-else in one line.
It uses the syntax: condition ? value_if_true : value_if_false.
It is great for simple decisions and makes code cleaner.

Practice

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

Solution

  1. Step 1: Understand the ternary operator syntax

    The ternary operator uses a condition followed by a question mark, then the value if true, a colon, and the value if false.
  2. Step 2: Identify its purpose

    This syntax means it picks one of two values depending on whether the condition is true or false.
  3. Final Answer:

    It chooses one of two values based on a condition. -> Option A
  4. Quick Check:

    condition ? true_value : false_value = chooses value [OK]
Hint: Remember: condition ? true : false picks one value fast [OK]
Common Mistakes:
  • Thinking it creates loops
  • Confusing it with method definitions
  • Believing it comments code
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 the ternary operator format

    The correct format is condition followed by a question mark, then the true value, a colon, and the false value.
  2. Step 2: Compare options

    Only condition ? value_if_true : value_if_false matches this exact syntax; others misuse punctuation or order.
  3. Final Answer:

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

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

Solution

  1. Step 1: Evaluate the condition age >= 18

    Since age is 20, which is greater than or equal to 18, the condition is true.
  2. Step 2: Apply the ternary operator

    Because the condition is true, message is assigned "Adult".
  3. Final Answer:

    Adult -> Option D
  4. Quick Check:

    20 >= 18 ? "Adult" : "Minor" = "Adult" [OK]
Hint: Check condition result first, then pick true or false value [OK]
Common Mistakes:
  • Choosing the false value by mistake
  • Printing the variable instead of its value
  • Confusing syntax errors
4. Find the error in this Ruby code using a ternary operator:
score = 75
result = score > 60 ? "Pass" "Fail"
puts result
medium
A. Wrong variable name
B. Missing colon between true and false values
C. Missing question mark after condition
D. Using double quotes incorrectly

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 : false [OK]
Hint: Always put ':' between true and false parts [OK]
Common Mistakes:
  • Omitting the colon
  • Using comma instead of colon
  • Forgetting the question mark
5. You want to assign a variable status based on a number n: if n is positive, assign "Positive"; if zero, assign "Zero"; else assign "Negative". Which Ruby code using ternary operators is correct?
hard
A. status = n > 0 ? "Positive" : n == 0 ? "Zero" "Negative"
B. status = n > 0 ? "Positive" : "Zero" ? n == 0 : "Negative"
C. status = n > 0 ? "Positive" : (n == 0 ? "Zero" : "Negative")
D. status = (n > 0 ? "Positive" : "Zero") ? n == 0 : "Negative"

Solution

  1. Step 1: Understand nested ternary operator usage

    To handle three cases, nest one ternary inside the false part of another, using parentheses for clarity.
  2. Step 2: Analyze each option

    status = n > 0 ? "Positive" : (n == 0 ? "Zero" : "Negative") correctly nests the second ternary inside parentheses, ensuring proper evaluation order.
  3. Final Answer:

    status = n > 0 ? "Positive" : (n == 0 ? "Zero" : "Negative") -> Option C
  4. Quick Check:

    Nested ternary with parentheses = correct [OK]
Hint: Use parentheses to nest ternary operators clearly [OK]
Common Mistakes:
  • Missing parentheses causing wrong evaluation
  • Misplacing question marks and colons
  • Confusing order of conditions
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