Bird
Raised Fist0
Rubyprogramming~10 mins

Times method for counted repetition in Ruby - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Times method for counted repetition
Start with number n
↓
Call n.times do |i|
↓
Execute block with i from 0 to n-1
↓
Repeat until i == n-1
↓
Exit loop
The times method runs a block of code n times, passing the current count from 0 up to n-1.
Execution Sample
Ruby
3.times do |i|
  puts i
end
Prints numbers 0, 1, and 2 each on a new line using times method.
Execution Table
Iterationi (block variable)ActionOutput
10Execute block with i=00
21Execute block with i=11
32Execute block with i=22
Exit-i reached 3, loop ends-
💡 i reaches 3, which equals n, so times loop stops
Variable Tracker
VariableStartAfter 1After 2After 3Final
i-012-
Key Moments - 2 Insights
Why does the block variable i start at 0 instead of 1?
The times method counts from 0 up to n-1, so i starts at 0 as shown in the execution_table rows 1-3.
Does the times method include the number n in the block variable?
No, the block variable i goes up to n-1. The loop exits when i reaches n, as shown in the exit row.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of i during the second iteration?
A1
B0
C2
D3
💡 Hint
Check the 'i (block variable)' column in the second row of execution_table.
At which iteration does the times method stop running the block?
AAfter iteration 2
BAfter iteration 3
CAfter iteration 4
DNever stops
💡 Hint
Look at the exit row in execution_table where i reaches 3 and loop ends.
If we change 3.times to 5.times, how many rows will the execution_table have before exit?
A3
B4
C5
D6
💡 Hint
The times method runs the block n times, so 5.times runs 5 iterations.
Concept Snapshot
times method syntax:
number.times do |i|
  # code using i
end

Runs block n times with i from 0 to n-1.
Useful for counted repetition without manual loops.
Block variable i starts at 0, ends at n-1.
Full Transcript
The times method in Ruby runs a block of code a set number of times. It starts counting from zero and goes up to one less than the number. For example, 3.times do |i| runs the block three times with i values 0, 1, and 2. Each iteration executes the block with the current i. When i reaches the number, the loop stops. This method is a simple way to repeat code a fixed number of times without writing a manual loop.

Practice

(1/5)
1. What does the Ruby times method do when called on an integer?
easy
A. Repeats the given block of code that many times starting from zero.
B. Returns an array with that many elements.
C. Creates a range from zero to the integer.
D. Prints the integer value to the screen.

Solution

  1. Step 1: Understand the times method purpose

    The times method repeats a block of code a specified number of times, starting from zero.
  2. Step 2: Identify what happens when called on an integer

    When called on an integer, it runs the block that many times, passing the current count (starting at zero) to the block.
  3. Final Answer:

    Repeats the given block of code that many times starting from zero. -> Option A
  4. Quick Check:

    5.times { |i| puts i } prints 0 to 4 [OK]
Hint: Remember: times runs code block count times from zero [OK]
Common Mistakes:
  • Thinking it returns an array
  • Assuming it starts counting from 1
  • Confusing it with range creation
2. Which of the following is the correct syntax to print numbers 0 to 4 using times in Ruby?
easy
A. times(5) { |i| puts i }
B. 5.times do |i| puts i end
C. 5.times { i in puts i }
D. 5.times puts i

Solution

  1. Step 1: Check Ruby times syntax

    The correct syntax is calling times on an integer with a block, either with do...end or curly braces.
  2. Step 2: Identify the correct block parameter usage

    5.times do |i| puts i end uses 5.times do |i| puts i end, which is valid Ruby syntax to print 0 to 4.
  3. Final Answer:

    5.times do |i| puts i end -> Option B
  4. Quick Check:

    Correct block syntax = 5.times do |i| puts i end [OK]
Hint: Use integer.times do |i| ... end for correct syntax [OK]
Common Mistakes:
  • Using times(5) which is invalid
  • Incorrect block syntax like { i in ... }
  • Omitting block braces or do/end
3. What will be the output of this Ruby code?
3.times { |i| puts i * 2 }
medium
A. 0 2 4
B. 1 2 3
C. 2 4 6
D. 0 1 2

Solution

  1. Step 1: Understand the iteration count and block variable

    The 3.times runs the block 3 times with i values 0, 1, 2.
  2. Step 2: Calculate the output for each iteration

    Each iteration prints i * 2: 0*2=0, 1*2=2, 2*2=4.
  3. Final Answer:

    0 2 4 -> Option A
  4. Quick Check:

    Multiply index by 2 = 0, 2, 4 [OK]
Hint: Multiply block index by 2 to get output [OK]
Common Mistakes:
  • Assuming index starts at 1
  • Printing index without multiplication
  • Confusing output order
4. Identify the error in this Ruby code snippet:
5.times do i
  puts i
end
medium
A. puts cannot be used inside times block
B. times method cannot be used with do...end
C. Missing block parameter pipes | | around i
D. Integer 5 cannot call times method

Solution

  1. Step 1: Check block parameter syntax

    In Ruby, block parameters must be enclosed in pipes: do |i| ... end.
  2. Step 2: Identify the missing pipes causing syntax error

    The code uses do i without pipes, which is invalid syntax.
  3. Final Answer:

    Missing block parameter pipes | | around i -> Option C
  4. Quick Check:

    Block params need |i|, not just i [OK]
Hint: Always use |param| in block headers [OK]
Common Mistakes:
  • Omitting pipes around block parameters
  • Thinking do/end can't be used with times
  • Misunderstanding times method usage
5. You want to create an array of squares of numbers from 0 to 4 using times. Which code correctly does this?
hard
A. squares = (0..4).times { |i| i * i } puts squares
B. squares = 5.times { |i| i * i } puts squares
C. squares = [] 5.times do i squares.push(i * i) end puts squares
D. squares = [] 5.times { |i| squares << i * i } puts squares

Solution

  1. Step 1: Understand how to collect results in an array

    Since times returns the integer, not an array, we must create an empty array and push results inside the block.
  2. Step 2: Check each option for correct syntax and logic

    squares = [] 5.times { |i| squares << i * i } puts squares initializes an empty array, uses 5.times with block parameter i, and appends i*i to the array correctly.
  3. Final Answer:

    squares = [] 5.times { |i| squares << i * i } puts squares -> Option D
  4. Quick Check:

    Use array and push inside times block [OK]
Hint: Create array first, then push inside times block [OK]
Common Mistakes:
  • Assuming times returns an array
  • Using invalid range with times
  • Omitting block parameter pipes
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