What if you could tell your computer to do the same thing for many items with just a few words?
Why Each for iteration in Ruby? - Purpose & Use Cases
Imagine you have a list of friends' names written on paper, and you want to greet each one by saying "Hello". Doing this by writing each greeting separately takes a lot of time and space.
Writing a greeting for each friend manually is slow and boring. If you add or remove friends, you must rewrite all greetings again. This wastes time and can cause mistakes like missing someone.
The each for iteration lets you tell the computer: "For each friend in the list, say hello." This way, you write the instruction once, and it works for all friends automatically, saving time and avoiding errors.
puts "Hello, Alice!" puts "Hello, Bob!" puts "Hello, Carol!"
['Alice', 'Bob', 'Carol'].each do |friend| puts "Hello, #{friend}!" end
This concept lets you easily repeat actions for many items without extra work, making your code shorter and smarter.
When sending personalized emails to a list of customers, you can use each for iteration to send a unique message to each one without writing separate code for every customer.
Manual repetition is slow and error-prone.
Each for iteration automates repeating tasks for every item in a list.
It makes your code cleaner, faster, and easier to update.
Practice
each method do in Ruby when used with an array?Solution
Step 1: Understand the purpose of
Theeacheachmethod is used to loop over every element in a collection like an array.Step 2: Identify what happens inside the block
The block given toeachruns once for each element, allowing actions on each item.Final Answer:
It runs the given block once for every element in the array. -> Option BQuick Check:
eachrepeats actions per item [OK]
- Confusing each with sorting or filtering methods
- Thinking each returns a new array
- Assuming each counts elements
numbers using each in Ruby?Solution
Step 1: Recognize correct
Theeachsyntaxeachmethod is called on the array, followed by a block with a parameter inside pipes.Step 2: Check block format
numbers.each { |num| puts num } uses curly braces with a block parameter|num|and a valid block bodyputs num.Final Answer:
numbers.each { |num| puts num } -> Option CQuick Check:
Correct block syntax = numbers.each { |num| puts num } [OK]
- Placing the variable outside the pipes
- Calling each without a block
- Using parentheses incorrectly with each
fruits = ['apple', 'banana', 'cherry'] fruits.each do |fruit| puts fruit.upcase end
Solution
Step 1: Understand the each loop behavior
The code loops over each fruit and prints the uppercase version usingputs fruit.upcase.Step 2: Determine output format
putsprints each string on a new line, so each fruit name appears uppercase on its own line.Final Answer:
APPLE BANANA CHERRY -> Option AQuick Check:
each + puts prints each item on a new line [OK]
- Expecting output on one line
- Confusing puts with print
- Not applying upcase method
numbers = [1, 2, 3] numbers.each do num puts num * 2 end
Solution
Step 1: Check block variable syntax
In Ruby, block variables must be enclosed in pipes like|num|when usingdo...end.Step 2: Identify the missing pipes
The code usesdo numinstead ofdo |num|, causing a syntax error.Final Answer:
Missing pipes around the block variable 'num'. -> Option AQuick Check:
Block variables need pipes |var| [OK]
- Omitting pipes around block variables
- Thinking parentheses are required after each
- Believing puts cannot be used inside blocks
scores = { alice: 10, bob: 15, carol: 12 }, how can you use each to print each name and score in the format Name: Score?Solution
Step 1: Understand hash iteration with each
When iterating a hash witheach, two block variables receive the key and value respectively.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}.Final Answer:
scores.each do |name, score| puts "#{name.capitalize}: #{score}" end -> Option DQuick Check:
Hash each uses two vars: key, value [OK]
- Swapping key and value variables
- Using only one block variable for hash
- Not capitalizing the name correctly
Ready to prove it?
Pass the test and this pattern moves unknown
