Bird
Raised Fist0
Rubyprogramming~20 mins

Nil as the absence of value in Ruby - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Nil Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Understanding nil in conditional expressions
What is the output of this Ruby code snippet?
Ruby
value = nil
if value
  puts "Value is true"
else
  puts "Value is false or nil"
end
AValue is true
Bnil
CValue is false or nil
DError: undefined variable
Attempts:
2 left
💡 Hint
Remember that in Ruby, only false and nil are treated as false in conditionals.
❓ Predict Output
intermediate
2:00remaining
Nil and method calls
What happens when you call a method on nil in Ruby?
Ruby
result = nil.to_s
puts result
Anil
B"" (empty string)
CNoMethodError
Dfalse
Attempts:
2 left
💡 Hint
Check what methods nil supports in Ruby.
❓ Predict Output
advanced
2:00remaining
Nil in array operations
What is the output of this Ruby code?
Ruby
arr = [1, nil, 3]
filtered = arr.compact
puts filtered.inspect
A[1, 3]
BError: undefined method 'compact'
C[nil]
D[1, nil, 3]
Attempts:
2 left
💡 Hint
The compact method removes nil elements from arrays.
❓ Predict Output
advanced
2:00remaining
Nil and equality checks
What is the output of this Ruby code?
Ruby
a = nil
b = false
puts a == b
puts a.nil?
puts b.nil?
A
false
true
false
B
true
true
true
C
false
false
false
D
true
false
true
Attempts:
2 left
💡 Hint
Check how nil compares to false and how the nil? method works.
🧠 Conceptual
expert
2:00remaining
Nil and safe navigation operator
What is the output of this Ruby code using the safe navigation operator (&.)?
Ruby
person = nil
name = person&.name
puts name.nil?
ANoMethodError
Bfalse
Cnil
Dtrue
Attempts:
2 left
💡 Hint
The safe navigation operator prevents errors when calling methods on nil.

Practice

(1/5)
1. What does nil represent in Ruby?
easy
A. A boolean false value
B. The number zero
C. The absence of any value
D. An empty string

Solution

  1. Step 1: Understand the meaning of nil

    In Ruby, nil is used to represent the absence of a value or nothingness.
  2. Step 2: Differentiate from other values

    Zero, empty string, and false are actual values, but nil means no value at all.
  3. Final Answer:

    The absence of any value -> Option C
  4. Quick Check:

    nil means no value [OK]
Hint: Remember: nil means nothing or no value [OK]
Common Mistakes:
  • Confusing nil with false
  • Thinking nil is zero
  • Assuming nil is an empty string
2. Which of the following is the correct way to check if a variable x is nil in Ruby?
easy
A. if x == null
B. if x.nil?
C. if x === nil
D. if x.isNil()

Solution

  1. Step 1: Recall Ruby's method to check nil

    Ruby uses the method .nil? to check if a value is nil.
  2. Step 2: Compare options

    if x.nil? uses x.nil? which is the correct Ruby syntax. Other options use incorrect syntax or methods not in Ruby.
  3. Final Answer:

    if x.nil? -> Option B
  4. Quick Check:

    Use .nil? to check nil [OK]
Hint: Use .nil? method to check nil in Ruby [OK]
Common Mistakes:
  • Using 'null' instead of 'nil'
  • Using triple equals (===) incorrectly
  • Using JavaScript style isNil() method
3. What will be the output of this Ruby code?
value = nil
if value.nil?
  puts "No value"
else
  puts "Has value"
end
medium
A. Error
B. Has value
C. nil
D. No value

Solution

  1. Step 1: Check the variable value

    The variable value is assigned nil, meaning no value.
  2. Step 2: Evaluate the if condition

    The condition value.nil? returns true because value is nil, so it prints "No value".
  3. Final Answer:

    No value -> Option D
  4. Quick Check:

    value.nil? true prints "No value" [OK]
Hint: If variable.nil? is true, it means no value [OK]
Common Mistakes:
  • Assuming nil prints as 'nil'
  • Confusing nil with false
  • Expecting an error from nil check
4. Find the error in this Ruby code snippet:
def check_value(val)
  if val == nil?
    "Value is nil"
  else
    "Value exists"
  end
end

puts check_value(nil)
medium
A. Should use 'val.nil?' without '=='
B. Missing 'end' for the method
C. Using '==' with nil? method is incorrect
D. Cannot compare with nil in Ruby

Solution

  1. Step 1: Identify the incorrect comparison

    The code uses val == nil?, which is invalid because nil? is a method and cannot be used like this.
  2. Step 2: Correct the nil check syntax

    The proper way is to call val.nil? without using == to check if val is nil.
  3. Final Answer:

    Should use 'val.nil?' without '==' -> Option A
  4. Quick Check:

    Use val.nil? method directly, no '==' [OK]
Hint: Call .nil? directly, don't compare with == [OK]
Common Mistakes:
  • Using '==' with .nil? method
  • Confusing method call syntax
  • Thinking nil is a keyword to compare with
5. Given a list of values [1, nil, 3, nil, 5], which Ruby code correctly counts how many elements are nil?
hard
A. All of the above
B. [1, nil, 3, nil, 5].select(&:nil?).length
C. [1, nil, 3, nil, 5].count(nil)
D. [1, nil, 3, nil, 5].filter { |v| v.nil? }.size

Solution

  1. Step 1: Understand ways to count nil elements

    Ruby arrays have multiple ways to count elements matching a condition: .count(nil), .select(&:nil?).length, and .filter { |v| v.nil? }.size all work.
  2. Step 2: Verify each option

    [1, nil, 3, nil, 5].count(nil) counts elements equal to nil directly. Options B and D select elements where v.nil? is true and count them. All produce the same result.
  3. Final Answer:

    All of the above -> Option A
  4. Quick Check:

    Multiple Ruby methods count nil elements correctly [OK]
Hint: Use count(nil) or select/filter with .nil? to count nils [OK]
Common Mistakes:
  • Using count without argument
  • Confusing length and size methods
  • Forgetting & before :nil? in select
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