Bird
0
0

Given this Ruby code, what will be the output?

hard📝 Application Q15 of 15
Ruby - Control Flow
Given this Ruby code, what will be the output?
values = [0, 1, nil, 5]
results = values.map { |v| v ? "Yes" : "No" }
puts results.inspect
A["No", "Yes", "No", "Yes"]
B["No", "No", "No", "No"]
C["Yes", "Yes", "No", "Yes"]
D["Yes", "No", "Yes", "No"]
Step-by-Step Solution
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]
Quick Trick: Remember: only nil and false are falsey in Ruby [OK]
Common Mistakes:
MISTAKES
  • Thinking 0 is falsy
  • Confusing nil with false
  • Misreading map block

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Ruby Quizzes