Bird
Raised Fist0
Rustprogramming~5 mins

Loop execution flow in Rust - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Loop execution flow
O(n)
Understanding Time Complexity

Loops run code multiple times, so their speed depends on how many times they repeat.

We want to know how the total work grows as the loop runs more times.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

fn sum_numbers(numbers: &[i32]) -> i32 {
    let mut total = 0;
    for &num in numbers {
        total += num;
    }
    total
}

This code adds up all numbers in a list and returns the total.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Adding each number to total inside the for-loop.
  • How many times: Once for every number in the list.
How Execution Grows With Input

As the list gets longer, the loop runs more times, doing more additions.

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

Pattern observation: The work grows directly with the number of items.

Final Time Complexity

Time Complexity: O(n)

This means the time to finish grows in a straight line with the list size.

Common Mistake

[X] Wrong: "The loop runs a fixed number of times, so time is constant."

[OK] Correct: The loop runs once for each item, so if the list grows, the loop runs more times.

Interview Connect

Understanding how loops affect time helps you explain code speed clearly and confidently.

Self-Check

"What if we added a nested loop inside the existing loop? How would the time complexity change?"

Practice

(1/5)
1. What does the break statement do inside a Rust loop?
easy
A. It restarts the loop from the beginning.
B. It skips the current iteration and continues with the next one.
C. It pauses the loop until a condition is met.
D. It stops the loop immediately and exits it.

Solution

  1. Step 1: Understand the role of break in loops

    The break statement immediately stops the loop and exits it.
  2. Step 2: Compare with other loop controls

    continue skips to the next iteration, but break ends the loop entirely.
  3. Final Answer:

    It stops the loop immediately and exits it. -> Option D
  4. Quick Check:

    break stops loop = C [OK]
Hint: Remember: break = stop loop, continue = skip iteration [OK]
Common Mistakes:
  • Confusing break with continue
  • Thinking break pauses instead of stops
  • Assuming break restarts the loop
2. Which of the following is the correct syntax to skip the current iteration in a Rust for loop?
easy
A. skip;
B. continue;
C. break;
D. next;

Solution

  1. Step 1: Identify the keyword to skip iteration

    In Rust, continue; skips the rest of the current loop iteration and moves to the next.
  2. Step 2: Check other options for correctness

    break; stops the loop, skip; and next; are not valid Rust keywords for this purpose.
  3. Final Answer:

    continue; -> Option B
  4. Quick Check:

    Skip iteration = continue [OK]
Hint: Use continue to skip current loop iteration [OK]
Common Mistakes:
  • Using break instead of continue
  • Using non-existent keywords like skip or next
  • Omitting the semicolon
3. What will be the output of this Rust code?
let mut count = 0;
loop {
    count += 1;
    if count == 3 {
        break;
    }
    println!("{}", count);
}
medium
A. 1 2 3
B. 0 1 2
C. 1 2
D. 3

Solution

  1. Step 1: Trace the loop iterations and print statements

    Loop increments count from 0 to 1, prints 1; then 2, prints 2; when count is 3, break stops loop before printing.
  2. Step 2: Determine printed values

    Only 1 and 2 are printed before break stops the loop.
  3. Final Answer:

    1 2 -> Option C
  4. Quick Check:

    Prints before break = 1 2 [OK]
Hint: Break stops before printing count 3 [OK]
Common Mistakes:
  • Assuming count 3 is printed
  • Starting count from 1 instead of 0
  • Confusing break and continue effects
4. Identify the error in this Rust loop code:
for i in 1..5 {
    if i == 3 {
        continue
    }
    println!("{}", i);
}
medium
A. Missing semicolon after continue
B. Incorrect range syntax
C. println! macro is used incorrectly
D. continue cannot be used inside for loops

Solution

  1. Step 1: Check syntax of continue statement

    In Rust, statements like continue require a semicolon to end the statement.
  2. Step 2: Verify other parts of the code

    The range 1..5 and println! usage are correct; continue is valid inside for loops.
  3. Final Answer:

    Missing semicolon after continue -> Option A
  4. Quick Check:

    Statements need semicolon = A [OK]
Hint: Add semicolon after continue to fix syntax [OK]
Common Mistakes:
  • Forgetting semicolon after continue
  • Thinking continue is invalid in for loops
  • Misreading range syntax
5. Given this Rust code, what will be the final value of sum?
let mut sum = 0;
for i in 1..6 {
    if i % 2 == 0 {
        continue;
    }
    if i == 5 {
        break;
    }
    sum += i;
}
hard
A. 4
B. 5
C. 6
D. 9

Solution

  1. Step 1: Analyze loop iterations and conditions

    Loop runs i from 1 to 5 (exclusive 6). For even i, continue skips adding. For i == 5, break stops loop before adding.
  2. Step 2: Calculate sum for valid i values

    i=1 (odd, add 1), i=2 (even, skip), i=3 (odd, add 3), i=4 (even, skip), i=5 (break before add). sum = 1 + 3 = 4.
  3. Final Answer:

    4 -> Option A
  4. Quick Check:

    Sum odd before 5 = 4 [OK]
Hint: Add only odd numbers before 5, skip evens [OK]
Common Mistakes:
  • Adding even numbers mistakenly
  • Including 5 in sum despite break
  • Confusing continue and break effects
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