Bird
Raised Fist0
Rubyprogramming~5 mins

For loop (rarely used in Ruby)

Choose your learning style10 modes available
Introduction

A for loop repeats a set of actions for each item in a list. In Ruby, it's not used often because other ways are simpler.

When you want to do something with every item in a list, like printing each name.
When you have a fixed range of numbers and want to repeat actions for each number.
When you prefer a clear, simple loop structure instead of more Ruby-specific methods.
When learning basic programming loops before moving to Ruby's more common methods.
Syntax
Ruby
for variable in collection
  # code to run
end

The variable takes each item from the collection one by one.

The loop runs the code inside for ... end for every item.

Examples
This prints numbers 1 to 3, one per line.
Ruby
for i in 1..3
  puts i
end
This prints each fruit name from the list.
Ruby
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits
  puts fruit
end
Sample Program

This program prints a message for numbers 1 through 5 using a for loop.

Ruby
for number in 1..5
  puts "Number is #{number}"
end
OutputSuccess
Important Notes

Ruby developers usually prefer .each loops because they are more flexible and readable.

For loops work fine but are less common in Ruby code you see in real projects.

Summary

For loops repeat actions for each item in a list or range.

They are simple but not the usual way to loop in Ruby.

Use them when you want clear, straightforward looping syntax.

Practice

(1/5)
1. What does the following Ruby for loop do?

for i in 1..3
puts i
end
easy
A. Prints numbers 1, 2, and 3 each on a new line
B. Prints numbers 1 to 2 only
C. Prints numbers 0 to 3
D. Causes a syntax error

Solution

  1. Step 1: Understand the range 1..3

    The range 1..3 includes the numbers 1, 2, and 3.
  2. Step 2: Loop through each number and print

    The loop prints each number on its own line using puts.
  3. Final Answer:

    Prints numbers 1, 2, and 3 each on a new line -> Option A
  4. Quick Check:

    for loop with 1..3 prints 1, 2, 3 [OK]
Hint: Remember 1..3 includes 3, so loop prints 1, 2, 3 [OK]
Common Mistakes:
  • Thinking 1..3 excludes 3
  • Confusing puts with print
  • Expecting syntax error
2. Which of the following is the correct syntax for a for loop in Ruby to iterate over an array ["a", "b", "c"]?
easy
A. for x to ["a", "b", "c"] puts x end
B. for (x : ["a", "b", "c"]) puts x end
C. for x in ["a", "b", "c"] do puts x end
D. for x in ["a", "b", "c"] puts x

Solution

  1. Step 1: Check the correct Ruby for loop syntax

    Ruby uses for variable in collection do ... end or without do.
  2. Step 2: Validate each option

    for x in ["a", "b", "c"] do puts x end uses correct syntax with for x in array do ... end. for (x : ["a", "b", "c"]) puts x end and C use invalid syntax. for x in ["a", "b", "c"] puts x misses end to close the loop.
  3. Final Answer:

    for x in ["a", "b", "c"] do puts x end -> Option C
  4. Quick Check:

    Correct Ruby for loop uses 'for x in collection do ... end' [OK]
Hint: Remember: for x in collection do ... end is correct Ruby syntax [OK]
Common Mistakes:
  • Using colon or 'to' instead of 'in'
  • Omitting the 'end' keyword
  • Adding parentheses incorrectly
3. What is the output of this Ruby code?

sum = 0
for i in 1..4
sum += i
end
puts sum
medium
A. Error
B. 9
C. 0
D. 10

Solution

  1. Step 1: Understand the loop range and sum initialization

    The loop runs from 1 to 4, and sum starts at 0.
  2. Step 2: Calculate sum after each iteration

    sum = 0+1=1, then 1+2=3, then 3+3=6, then 6+4=10.
  3. Final Answer:

    10 -> Option D
  4. Quick Check:

    Sum of 1 to 4 is 10 [OK]
Hint: Add numbers 1 through 4 to get 10 quickly [OK]
Common Mistakes:
  • Forgetting to include last number 4
  • Starting sum at 1 instead of 0
  • Syntax errors in loop
4. Identify the error in this Ruby for loop:

for i in 1..3
puts i
medium
A. Wrong range syntax
B. Missing end to close the loop
C. Variable i not defined
D. Using puts inside loop is invalid

Solution

  1. Step 1: Check loop syntax completeness

    The loop starts with for but does not have a matching end.
  2. Step 2: Confirm other parts are correct

    The range 1..3 and variable i are valid, and puts is allowed inside loops.
  3. Final Answer:

    Missing end to close the loop -> Option B
  4. Quick Check:

    Every for loop needs an 'end' [OK]
Hint: Always close for loops with 'end' [OK]
Common Mistakes:
  • Forgetting 'end' keyword
  • Thinking variable must be declared first
  • Believing puts is invalid inside loops
5. You want to create a Ruby for loop that prints only even numbers from 2 to 10 inclusive. Which code snippet achieves this correctly?
hard
A. for i in 2..10 do puts i if i % 2 == 0 end
B. for i in 2..10 do puts i if i % 2 == 1 end
C. for i in 1..10 do puts i if i % 2 == 1 end
D. for i in 2..10 puts i end

Solution

  1. Step 1: Identify the range and condition for even numbers

    The range 2..10 includes numbers 2 through 10. Even numbers satisfy i % 2 == 0.
  2. Step 2: Check each option's condition

    for i in 2..10 do puts i if i % 2 == 0 end prints numbers in 2..10 only if even. for i in 2..10 do puts i if i % 2 == 1 end prints odd numbers. for i in 1..10 do puts i if i % 2 == 1 end prints odd numbers 1,3,5,7,9. for i in 2..10 puts i end prints all numbers without filtering.
  3. Final Answer:

    for i in 2..10 do puts i if i % 2 == 0 end -> Option A
  4. Quick Check:

    Filter with 'if i % 2 == 0' inside for loop [OK]
Hint: Use 'if i % 2 == 0' inside for loop to print evens [OK]
Common Mistakes:
  • Using wrong modulo condition for even numbers
  • Not filtering numbers inside loop
  • Starting range at 1 instead of 2
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