Bird
Raised Fist0
Rubyprogramming~20 mins

Each for iteration in Ruby - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Each Iteration Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of each with array iteration
What is the output of this Ruby code?
Ruby
arr = [1, 2, 3]
result = []
arr.each { |x| result << x * 2 }
puts result.inspect
A[1, 2, 3]
Bnil
C[2, 4, 6]
D[1, 4, 9]
Attempts:
2 left
💡 Hint
Remember that each iterates over elements and you can push transformed values into another array.
❓ Predict Output
intermediate
2:00remaining
Return value of each method
What does the following Ruby code print?
Ruby
numbers = [10, 20, 30]
result = numbers.each { |n| n + 5 }
puts result.inspect
A[15, 25, 35]
B[10, 20, 30]
CTypeError
Dnil
Attempts:
2 left
💡 Hint
The each method returns the original array, not the transformed values.
🔧 Debug
advanced
2:00remaining
Spot the error in each iteration
Which option will raise an error when trying to print each fruit in uppercase?
Ruby
fruits = ['apple', 'banana', 'cherry']
fruits.each do |fruit|
  puts fruit.upcase
end
A
fruits.each do |fruit|
  puts fruit.uppercase
end
Bfruits.each { |fruit| puts fruit.upcase }
C
fruits.each do |fruit|
  puts fruit.upcase()
end
D
fruits.each do |f|
  puts f.upcase
end
Attempts:
2 left
💡 Hint
Check the method name for converting string to uppercase.
📝 Syntax
advanced
2:00remaining
Identify the syntax error in each block
Which option contains a syntax error in the each iteration?
Ruby
items = [1, 2, 3]
A
items.each do |item|
  puts item
end
Bitems.each do |item| puts item end
Citems.each { |item| puts item }
Ditems.each |item| { puts item }
Attempts:
2 left
💡 Hint
Check the placement of pipes and braces in each block syntax.
🚀 Application
expert
2:00remaining
Count elements with each iteration
Using each, how many elements in the array are greater than 5?
Ruby
arr = [3, 7, 2, 9, 5]
count = 0
arr.each do |x|
  count += 1 if x > 5
end
puts count
A2
B3
C4
D5
Attempts:
2 left
💡 Hint
Check each number and count only those greater than 5.

Practice

(1/5)
1. What does the each method do in Ruby when used with an array?
easy
A. It removes duplicate elements from the array.
B. It runs the given block once for every element in the array.
C. It sorts the array in ascending order.
D. It returns the length of the array.

Solution

  1. Step 1: Understand the purpose of each

    The each method is used to loop over every element in a collection like an array.
  2. Step 2: Identify what happens inside the block

    The block given to each runs once for each element, allowing actions on each item.
  3. Final Answer:

    It runs the given block once for every element in the array. -> Option B
  4. Quick Check:

    each repeats actions per item [OK]
Hint: Remember: each runs code for every item in the list [OK]
Common Mistakes:
  • Confusing each with sorting or filtering methods
  • Thinking each returns a new array
  • Assuming each counts elements
2. Which of the following is the correct syntax to iterate over an array numbers using each in Ruby?
easy
A. numbers.each do num puts num end
B. each numbers do |num| puts num end
C. numbers.each { |num| puts num }
D. numbers.each(num) { puts num }

Solution

  1. Step 1: Recognize correct each syntax

    The each method is called on the array, followed by a block with a parameter inside pipes.
  2. Step 2: Check block format

    numbers.each { |num| puts num } uses curly braces with a block parameter |num| and a valid block body puts num.
  3. Final Answer:

    numbers.each { |num| puts num } -> Option C
  4. Quick Check:

    Correct block syntax = numbers.each { |num| puts num } [OK]
Hint: Use .each with {|var| ...} or do |var| ... end [OK]
Common Mistakes:
  • Placing the variable outside the pipes
  • Calling each without a block
  • Using parentheses incorrectly with each
3. What will be the output of this Ruby code?
fruits = ['apple', 'banana', 'cherry']
fruits.each do |fruit|
  puts fruit.upcase
end
medium
A. APPLE BANANA CHERRY
B. apple banana cherry
C. APPLE BANANA CHERRY
D. ['APPLE', 'BANANA', 'CHERRY']

Solution

  1. Step 1: Understand the each loop behavior

    The code loops over each fruit and prints the uppercase version using puts fruit.upcase.
  2. Step 2: Determine output format

    puts prints each string on a new line, so each fruit name appears uppercase on its own line.
  3. Final Answer:

    APPLE BANANA CHERRY -> Option A
  4. Quick Check:

    each + puts prints each item on a new line [OK]
Hint: puts prints each item on a new line inside each [OK]
Common Mistakes:
  • Expecting output on one line
  • Confusing puts with print
  • Not applying upcase method
4. Identify the error in this Ruby code snippet:
numbers = [1, 2, 3]
numbers.each do num
  puts num * 2
end
medium
A. Missing pipes around the block variable 'num'.
B. Incorrect method name; should be 'for' instead of 'each'.
C. Missing parentheses after 'each'.
D. Using 'puts' inside the block is not allowed.

Solution

  1. Step 1: Check block variable syntax

    In Ruby, block variables must be enclosed in pipes like |num| when using do...end.
  2. Step 2: Identify the missing pipes

    The code uses do num instead of do |num|, causing a syntax error.
  3. Final Answer:

    Missing pipes around the block variable 'num'. -> Option A
  4. Quick Check:

    Block variables need pipes |var| [OK]
Hint: Always put block variables inside |pipes| with do...end [OK]
Common Mistakes:
  • Omitting pipes around block variables
  • Thinking parentheses are required after each
  • Believing puts cannot be used inside blocks
5. Given a hash scores = { alice: 10, bob: 15, carol: 12 }, how can you use each to print each name and score in the format Name: Score?
hard
A. scores.each { |name| puts "#{name.capitalize}: #{score}" }
B. scores.each { |score, name| puts "#{name}: #{score}" }
C. scores.each do |name| puts "#{name}: #{scores[name]}" end
D. scores.each do |name, score| puts "#{name.capitalize}: #{score}" end

Solution

  1. Step 1: Understand hash iteration with each

    When iterating a hash with each, two block variables receive the key and value respectively.
  2. Step 2: Use correct variable order and string formatting

    scores.each do |name, score| puts "#{name.capitalize}: #{score}" end correctly uses |name, score| and prints with #{name.capitalize}: #{score}.
  3. Final Answer:

    scores.each do |name, score| puts "#{name.capitalize}: #{score}" end -> Option D
  4. Quick Check:

    Hash each uses two vars: key, value [OK]
Hint: Hash each needs two vars: |key, value| [OK]
Common Mistakes:
  • Swapping key and value variables
  • Using only one block variable for hash
  • Not capitalizing the name correctly
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