Bird
Raised Fist0
Rubyprogramming~10 mins

For loop (rarely used in Ruby) - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - For loop (rarely used in Ruby)
Initialize loop variable
↓
Check condition: variable in range?
No→EXIT
Yes↓
Execute loop body
↓
Update loop variable to next value
↩Back to Check
The for loop starts by setting a variable, checks if it is within a range, runs the loop body if yes, then moves to the next value until the condition fails.
Execution Sample
Ruby
for i in 1..3
  puts i
end
This code prints numbers 1 to 3 using a for loop.
Execution Table
Iterationi valueCondition (i in 1..3)ActionOutput
11truePrint i1
22truePrint i2
33truePrint i3
44falseExit loop
💡 Next value 4 is outside 1..3, so condition is false and loop stops
Variable Tracker
VariableStartAfter 1After 2After 3Final
iundefined1234
Key Moments - 2 Insights
Why does the loop stop after printing 3?
Because the condition checks if i is in 1..3. After i=3, next would be 4 (see execution_table row 4), it is outside the range, so the loop ends.
Is the loop variable i accessible after the loop ends?
Yes, in Ruby the loop variable i keeps its last value after the loop (which is 4 here, see variable_tracker final).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of i during iteration 2?
A1
B2
C3
D4
💡 Hint
Check the 'i value' column in execution_table row for iteration 2.
At which iteration does the loop condition become false?
AIteration 4
BIteration 1
CIteration 3
DIteration 2
💡 Hint
Look at the 'Condition' column in execution_table where it changes to false.
If the range changed to 1..2, how many times would the loop run?
A3 times
B1 time
C2 times
D4 times
💡 Hint
Refer to how the range controls iterations in execution_table and variable_tracker.
Concept Snapshot
for loop syntax:
for variable in range
  # code
end

Runs code for each value in range.
Stops when values end.
Loop variable keeps last value after loop.
Full Transcript
This visual trace shows how a for loop works in Ruby. The loop variable i starts at 1 and goes up to 3. Each iteration prints i. After printing 3, next would be 4 but condition fails and the loop stops. The variable i keeps its last value after the loop ends. This example helps beginners see each step clearly.

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