Bird
Raised Fist0
Rubyprogramming~5 mins

Case with ranges and patterns in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a case statement used for in Ruby?
A case statement lets you check a value against multiple conditions and run code based on which condition matches. It's like choosing between many options.
Click to reveal answer
beginner
How do ranges work inside a Ruby case statement?
Ranges like 1..5 represent a sequence of values. In a case, Ruby checks if the value falls inside the range to decide which code to run.
Click to reveal answer
intermediate
What is pattern matching in Ruby's case statement?
Pattern matching lets you check if a value fits a certain shape or structure, like matching parts of an array or hash, and then run code based on that.
Click to reveal answer
beginner
Explain this Ruby code snippet:
case age
when 0..12 then "Child"
when 13..19 then "Teen"
else "Adult"
end
This code checks the value of age. If it's between 0 and 12, it returns "Child". If between 13 and 19, it returns "Teen". Otherwise, it returns "Adult".
Click to reveal answer
intermediate
How does Ruby decide which when clause matches in a case statement?
Ruby compares the case value with each when condition using the === operator. The first match runs its code, and then Ruby stops checking further.
Click to reveal answer
In Ruby, what does 1..5 represent inside a case statement?
AA range including numbers 1 through 5
BAn array of numbers 1 to 5
CA pattern matching any number
DA string from '1' to '5'
What will this Ruby code output if score = 85?
case score
when 90..100 then "Excellent"
when 75..89 then "Good"
else "Needs Improvement"
end
A"Needs Improvement"
B"Excellent"
C"Good"
DAn error
Which operator does Ruby use internally to check when conditions in a case statement?
A!=
B==
C<=
D===
What does pattern matching in a Ruby case statement allow you to do?
AMatch exact values only
BMatch values based on structure or shape
COnly match numbers
DIgnore the value completely
What will this Ruby code return?
case [1, 2, 3]
when [1, 2, 3] then "Exact match"
when [1, 2] then "Partial match"
else "No match"
end
A"Exact match"
B"Partial match"
C"No match"
DAn error
Explain how Ruby's case statement works with ranges and how it decides which block to execute.
Think about how Ruby checks if a value falls inside a range.
You got /4 concepts.
    Describe what pattern matching means in Ruby's case statement and give an example of when it might be useful.
    Consider matching parts of a data structure, not just simple values.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      What does the in keyword do inside a case statement in Ruby when used with ranges?

      easy
      A. It checks if the value falls within the given range.
      B. It assigns the range to the value.
      C. It creates a new range object.
      D. It compares the value for equality with the range.

      Solution

      1. Step 1: Understand the role of in in case

        The in keyword is used to match a value against a pattern or range inside a case statement.
      2. Step 2: Check how it works with ranges

        When used with a range like 1..10, it checks if the value lies within that range.
      3. Final Answer:

        It checks if the value falls within the given range. -> Option A
      4. Quick Check:

        in with range means value in range [OK]
      Hint: Remember: in checks membership in range or pattern [OK]
      Common Mistakes:
      • Thinking in assigns values instead of matching
      • Confusing range equality with membership
      • Assuming in creates new objects
      2.

      Which of the following is the correct syntax to match a number n in the range 5 to 15 inside a case statement using pattern matching?

      case n
        in ???
          puts "In range"
        else
          puts "Out of range"
      end
      easy
      A. in (5..15)
      B. 5..15
      C. 5...15
      D. in 5..15

      Solution

      1. Step 1: Identify correct pattern syntax in in clause

        Inside case, in is followed directly by the pattern, so in 5..15 is correct syntax.
      2. Step 2: Check other options for syntax errors

        Options without in or with extra parentheses are invalid syntax in this context.
      3. Final Answer:

        in 5..15 -> Option D
      4. Quick Check:

        Use in followed by the pattern without extra keywords or parentheses [OK]
      Hint: Use in once, then the pattern without extra keywords [OK]
      Common Mistakes:
      • Writing in in 5..15 which is invalid
      • Adding parentheses around the range
      • Using three-dot range 5...15 which excludes 15
      3.

      What will be the output of this Ruby code?

      score = 75
      case score
      in 0..49 then puts "Fail"
      in 50..79 then puts "Pass"
      in 80..100 then puts "Excellent"
      else puts "Invalid"
      end
      medium
      A. Pass
      B. Fail
      C. Excellent
      D. Invalid

      Solution

      1. Step 1: Check which range includes 75

        75 is not in 0..49 but is in 50..79.
      2. Step 2: Match the corresponding output

        The code prints "Pass" when score is in 50..79.
      3. Final Answer:

        Pass -> Option A
      4. Quick Check:

        75 in 50..79 means output "Pass" [OK]
      Hint: Find which range includes the value, then pick that output [OK]
      Common Mistakes:
      • Choosing "Fail" because 75 is greater than 49
      • Confusing inclusive and exclusive ranges
      • Ignoring the order of case branches
      4.

      Identify the error in this Ruby code snippet using case with pattern matching:

      value = 10
      case value
      in 1..5
        puts "Low"
      in 6..10
        puts "Medium"
      else
        puts "High"
      end
      medium
      A. Missing then after in clauses
      B. No error; code runs and prints "Medium"
      C. Ranges should be written as arrays inside in
      D. The case statement should use when instead of in

      Solution

      1. Step 1: Check syntax of case with in and ranges

        Using in with ranges inside case is valid Ruby syntax.
      2. Step 2: Verify output for value 10

        10 matches the range 6..10, so it prints "Medium".
      3. Final Answer:

        No error; code runs and prints "Medium" -> Option B
      4. Quick Check:

        in with ranges works fine [OK]
      Hint: Remember in works like when for pattern matching [OK]
      Common Mistakes:
      • Thinking then is mandatory after in
      • Confusing in with when
      • Trying to write ranges as arrays
      5.

      Given this Ruby code, what will be the output?

      data = [3, 7, 12, 18]
      case data
      in [Integer, Integer, Integer, Integer]
        puts "All integers"
      in [Integer, Integer, Integer, 18]
        puts "Last is 18"
      else
        puts "No match"
      end
      hard
      A. No match
      B. Last is 18
      C. All integers
      D. SyntaxError

      Solution

      1. Step 1: Understand array pattern matching order

        The case checks patterns in order. The first pattern matches any array of four integers.
      2. Step 2: Check if data matches first pattern

        Data is [3,7,12,18], all integers, so it matches the first pattern.
      3. Step 3: Confirm second pattern is not reached

        Since first pattern matches, second is skipped.
      4. Final Answer:

        All integers -> Option C
      5. Quick Check:

        First matching pattern runs, so output is "All integers" [OK]
      Hint: Patterns checked top-down; first match wins [OK]
      Common Mistakes:
      • Assuming second pattern runs despite first matching
      • Confusing element types with values in patterns
      • Expecting syntax error due to pattern complexity
      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