Bird
Raised Fist0
Rubyprogramming~5 mins

While loop in Ruby - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: While loop
O(n)
Understanding Time Complexity

We want to understand how the time a while loop takes changes as the input size grows.

Specifically, how many times does the loop run when the input gets bigger?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


i = 0
while i < n
  puts i
  i += 1
end

This code prints numbers from 0 up to n-1 using a while loop.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: The while loop runs repeatedly.
  • How many times: It runs once for each number from 0 up to n-1, so n times.
How Execution Grows With Input

As n gets bigger, the loop runs more times, growing in a straight line.

Input Size (n)Approx. Operations
1010 times
100100 times
10001000 times

Pattern observation: The number of operations grows directly with n; if n doubles, operations double.

Final Time Complexity

Time Complexity: O(n)

This means the time it takes grows in a straight line as the input size increases.

Common Mistake

[X] Wrong: "The while loop runs a fixed number of times no matter what n is."

[OK] Correct: The loop runs once for each number up to n, so if n grows, the loop runs more times.

Interview Connect

Understanding how loops grow with input size helps you explain your code clearly and shows you can think about efficiency.

Self-Check

"What if we changed the loop to increase i by 2 each time? How would the time complexity change?"

Practice

(1/5)
1. What does a while loop do in Ruby?
easy
A. Stops the program immediately
B. Runs code only once regardless of condition
C. Repeats code as long as a condition is true
D. Executes code after the loop ends

Solution

  1. Step 1: Understand the purpose of a while loop

    A while loop runs the code inside it repeatedly as long as the condition is true.
  2. Step 2: Compare options with the definition

    Only Repeats code as long as a condition is true correctly describes this behavior.
  3. Final Answer:

    Repeats code as long as a condition is true -> Option C
  4. Quick Check:

    while loop = repeats while true [OK]
Hint: Remember: while loops run only if condition is true [OK]
Common Mistakes:
  • Thinking while loop runs code once
  • Confusing while with if statement
  • Assuming it stops program immediately
2. Which of the following is the correct syntax for a while loop in Ruby?
easy
A. while condition # code loop
B. while (condition) { # code }
C. while condition: # code
D. while condition do # code end

Solution

  1. Step 1: Recall Ruby while loop syntax

    Ruby uses while condition do ... end or while condition ... end without braces.
  2. Step 2: Check each option

    while condition do # code end matches Ruby syntax. Options B and C use other languages' syntax. while condition # code loop is invalid.
  3. Final Answer:

    while condition do\n # code\nend -> Option D
  4. Quick Check:

    Ruby while loop uses do/end [OK]
Hint: Ruby uses do/end, not braces or colons for while [OK]
Common Mistakes:
  • Using braces {} like in JavaScript
  • Using colon : like in Python
  • Ending with 'loop' keyword
3. What is the output of this Ruby code?
i = 1
while i <= 3 do
  puts i
  i += 1
end
medium
A. 1 2 3
B. 1 2 3 4
C. 0 1 2 3
D. No output

Solution

  1. Step 1: Trace the loop iterations

    i starts at 1. Loop runs while i <= 3. It prints i then adds 1 each time.
  2. Step 2: List printed values

    Prints 1, then 2, then 3. When i becomes 4, condition fails and loop stops.
  3. Final Answer:

    1 2 3 -> Option A
  4. Quick Check:

    Prints 1 to 3 inclusive [OK]
Hint: Count from start to condition limit inclusive [OK]
Common Mistakes:
  • Including 4 in output
  • Starting from 0 instead of 1
  • No output due to syntax errors
4. Identify the error in this Ruby code:
count = 5
while count > 0
  puts count
end
medium
A. Wrong variable name used in condition
B. Missing increment or decrement causing infinite loop
C. Syntax error: missing 'do' keyword
D. puts should be outside the loop

Solution

  1. Step 1: Analyze loop condition and body

    count starts at 5 and condition is count > 0. Inside loop, count is never changed.
  2. Step 2: Understand loop behavior

    Since count never decreases, condition stays true forever, causing infinite loop.
  3. Final Answer:

    Missing increment or decrement causing infinite loop -> Option B
  4. Quick Check:

    Loop needs variable change to stop [OK]
Hint: Always update loop variable inside while [OK]
Common Mistakes:
  • Forgetting to change loop variable
  • Assuming 'do' is mandatory
  • Thinking puts outside loop fixes error
5. How can you use a while loop to sum all even numbers from 2 to 10 inclusive in Ruby?
hard
A. i = 2 sum = 0 while i <= 10 do sum += i i += 2 end puts sum
B. i = 1 sum = 0 while i <= 10 do if i % 2 == 0 sum += i end i += 1 end puts sum
C. sum = 0 while i <= 10 do sum += i i += 1 end puts sum
D. i = 2 sum = 0 while i < 10 do sum += i i += 2 end puts sum

Solution

  1. Step 1: Understand the goal

    We want to add even numbers from 2 to 10 inclusive.
  2. Step 2: Check each option's logic

    i = 2 sum = 0 while i <= 10 do sum += i i += 2 end puts sum starts at 2 and increments by 2 up to 10 inclusive, summing even numbers correctly. i = 1 sum = 0 while i <= 10 do if i % 2 == 0 sum += i end i += 1 end puts sum checks each number from 1 to 10 and adds if even, also correct but less efficient. sum = 0 while i <= 10 do sum += i i += 1 end puts sum sums all numbers, not just even. i = 2 sum = 0 while i < 10 do sum += i i += 2 end puts sum stops before 10, missing 10.
  3. Step 3: Choose best option

    i = 2 sum = 0 while i <= 10 do sum += i i += 2 end puts sum is more direct and efficient for summing even numbers from 2 to 10 inclusive.
  4. Final Answer:

    Option A code correctly sums even numbers 2 to 10 inclusive -> Option A
  5. Quick Check:

    Increment by 2 starting at 2, sum all [OK]
Hint: Increment by 2 starting at 2 to sum even numbers [OK]
Common Mistakes:
  • Forgetting to include 10 in sum
  • Adding all numbers, not just even
  • Using wrong loop condition
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