Bird
Raised Fist0
Rubyprogramming~5 mins

Truthy and falsy values (only nil and false are falsy) in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What are the only falsy values in Ruby?
In Ruby, only false and nil are falsy. Everything else is truthy.
Click to reveal answer
beginner
Is the number 0 truthy or falsy in Ruby?
The number 0 is truthy in Ruby, unlike some other languages where it might be falsy.
Click to reveal answer
beginner
What will this Ruby code print?
if nil
  puts 'Yes'
else
  puts 'No'
end
It will print No because nil is falsy in Ruby.
Click to reveal answer
intermediate
Why does Ruby treat only false and nil as falsy?
Ruby's design makes it simple: only false and nil mean 'no' or 'nothing'. Everything else counts as 'yes' or 'something'.
Click to reveal answer
intermediate
How can understanding truthy and falsy values help you write better Ruby code?
Knowing which values are truthy or falsy helps you write clear conditions and avoid bugs, especially in if statements and loops.
Click to reveal answer
Which of these is falsy in Ruby?
Anil
B0
C"" (empty string)
D[] (empty array)
What does this code print?
puts false ? 'Yes' : 'No'
ANo
Bnil
Cfalse
DYes
Is the string "false" truthy or falsy in Ruby?
ACauses error
BFalsy
CDepends on context
DTruthy
Which values will make an if condition run its block in Ruby?
AOnly true
BOnly non-zero numbers
CAnything except false and nil
DOnly non-empty strings
What is the result of !!nil in Ruby?
Atrue
Bfalse
Cnil
DError
Explain which values are considered falsy in Ruby and why this matters when writing conditions.
Think about what Ruby treats as 'no' or 'nothing'.
You got /4 concepts.
    Describe how Ruby's truthy and falsy values differ from other languages you might know.
    Consider languages where 0 or empty strings might be falsy.
    You got /3 concepts.

      Practice

      (1/5)
      1. In Ruby, which of the following values is considered falsy?
      easy
      A. false
      B. 0
      C. "" (empty string)
      D. [] (empty array)

      Solution

      1. Step 1: Recall Ruby falsy values

        In Ruby, only false and nil are falsy.
      2. Step 2: Check each option

        0, empty string, and empty array are all truthy in Ruby.
      3. Final Answer:

        false -> Option A
      4. Quick Check:

        Falsy = false or nil [OK]
      Hint: Only false and nil are falsy in Ruby [OK]
      Common Mistakes:
      • Thinking 0 is falsy like in some other languages
      • Assuming empty string is falsy
      • Confusing empty array with falsy
      2. Which of the following is the correct way to check if a variable x is truthy in Ruby?
      easy
      A. if x == true
      B. if x
      C. if x != nil
      D. if x == nil

      Solution

      1. Step 1: Understand Ruby truthy check

        In Ruby, if x automatically checks if x is truthy (not false or nil).
      2. Step 2: Analyze options

        if x == true only matches true, missing other truthy values; if x != nil treats false as truthy (false != nil); if x == nil checks the opposite of truthy.
      3. Final Answer:

        if x -> Option B
      4. Quick Check:

        Use if x for truthy check [OK]
      Hint: Use 'if x' to check truthiness simply [OK]
      Common Mistakes:
      • Using 'if x == true' which misses other truthy values
      • Using 'if x != nil' which treats false as truthy
      • Checking 'if x == nil' to test truthiness
      3. What will be the output of this Ruby code?
      value = 0
      if value
        puts "Truthy"
      else
        puts "Falsy"
      end
      medium
      A. No output
      B. Falsy
      C. Error
      D. Truthy

      Solution

      1. Step 1: Identify the value and condition

        The variable value is assigned 0. The if value checks if value is truthy.
      2. Step 2: Recall Ruby truthy rules

        In Ruby, 0 is truthy, so the if branch runs.
      3. Final Answer:

        Truthy -> Option D
      4. Quick Check:

        0 is truthy in Ruby [OK]
      Hint: Remember 0 is truthy in Ruby, unlike some languages [OK]
      Common Mistakes:
      • Assuming 0 is falsy like in other languages
      • Expecting else branch to run
      • Confusing output with error
      4. The following Ruby code is intended to print "Falsy" only when var is falsy. What is wrong?
      var = nil
      if var == false
        puts "Falsy"
      else
        puts "Truthy"
      end
      medium
      A. It should check 'if var == nil' only
      B. Syntax error in the if statement
      C. It misses the case when var is nil, which is also falsy
      D. It should use 'var != false' instead

      Solution

      1. Step 1: Understand falsy values in Ruby

        Both false and nil are falsy in Ruby.
      2. Step 2: Analyze the condition

        The code checks only var == false, so it misses nil which is also falsy.
      3. Final Answer:

        It misses the case when var is nil, which is also falsy -> Option C
      4. Quick Check:

        Falsy = false or nil [OK]
      Hint: Check both false and nil for falsy, not just false [OK]
      Common Mistakes:
      • Checking only for false and ignoring nil
      • Confusing syntax errors with logic errors
      • Using wrong comparison operators
      5. You want to filter out falsy values from this array in Ruby:
      arr = [false, nil, 0, "", [], true]
      Which code correctly returns only truthy values?
      hard
      A. arr.select { |v| v }
      B. arr.reject { |v| v }
      C. arr.select { |v| v != false }
      D. arr.select { |v| v == true }

      Solution

      1. Step 1: Understand filtering truthy values

        Using select { |v| v } keeps only truthy values because v in condition is true for truthy values.
      2. Step 2: Analyze other options

        arr.select { |v| v != false } keeps nil (nil != false); arr.reject { |v| v } rejects truthy values; arr.select { |v| v == true } keeps only true, missing other truthy values.
      3. Final Answer:

        arr.select { |v| v } -> Option A
      4. Quick Check:

        Use select with block returning value for truthy filter [OK]
      Hint: Use select { |v| v } to keep truthy values [OK]
      Common Mistakes:
      • Using reject instead of select
      • Checking explicitly for false instead of truthiness
      • Selecting only true, missing other truthy values
      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