Bird
Raised Fist0
Rustprogramming~10 mins

For loop in Rust - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - For loop
Start
↓
Get iterable
↓
Take next item?
No→Exit loop
Yes↓
Execute loop body
↓
Repeat: Take next item?
The for loop gets an iterable, takes each item one by one, runs the loop body, and stops when no items remain.
Execution Sample
Rust
fn main() {
    for i in 1..4 {
        println!("{}", i);
    }
}
This code prints numbers 1, 2, and 3 using a for loop over a range.
Execution Table
Iterationi valueCondition (next item?)ActionOutput
11YesPrint 11
22YesPrint 22
33YesPrint 33
4-NoExit loop-
💡 No more items in range 1..4, loop ends
Variable Tracker
VariableStartAfter 1After 2After 3Final
i-123-
Key Moments - 2 Insights
Why does the loop stop after printing 3 and not include 4?
The range 1..4 in Rust includes 1, 2, and 3 but excludes 4, so the loop ends after 3 as shown in execution_table row 4.
What happens if the range is empty, like 5..5?
The loop never runs because there are no items to take, so the condition 'next item?' is No immediately, similar to execution_table row 4.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of 'i' at iteration 2?
A1
B3
C2
D-
💡 Hint
Check the 'i value' column in execution_table row 2
At which iteration does the loop condition become false?
AIteration 3
BIteration 4
CIteration 1
DNever
💡 Hint
Look at the 'Condition (next item?)' column in execution_table row 4
If the range changed to 1..3, how many times would the loop run?
A2 times
B1 time
C3 times
D0 times
💡 Hint
Ranges exclude the upper bound, so 1..3 includes 1 and 2 only, check variable_tracker for similar pattern
Concept Snapshot
Rust for loop syntax:
for variable in iterable {
    // code
}

Runs loop body once per item in iterable.
Ranges like 1..4 include start but exclude end.
Loop stops when no more items.
Full Transcript
This visual trace shows how a Rust for loop works by taking each item from an iterable one by one. The example uses a range 1..4 which includes 1, 2, and 3 but not 4. Each iteration assigns the current number to variable 'i' and prints it. The loop stops when there are no more items. The variable tracker shows how 'i' changes each iteration. Key moments clarify why 4 is excluded and what happens with empty ranges. The quiz tests understanding of iteration values and loop stopping conditions.

Practice

(1/5)
1. What does a for loop do in Rust?
easy
A. Declares a variable
B. Defines a new function
C. Repeats actions for each item in a collection
D. Stops the program immediately

Solution

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

    A for loop runs code repeatedly for each item in a list or range.
  2. Step 2: Match the description to the options

    Only Repeats actions for each item in a collection describes repeating actions over items in a collection.
  3. Final Answer:

    Repeats actions for each item in a collection -> Option C
  4. Quick Check:

    For loop = repeat over items [OK]
Hint: For loops repeat actions over collections [OK]
Common Mistakes:
  • Confusing for loop with function definition
  • Thinking for loop declares variables
  • Believing for loop stops program
2. Which of these is the correct syntax for a for loop iterating over numbers 1 to 3 in Rust?
easy
A. for i = 1 to 3 { println!("{}", i); }
B. for i in 1..=3 { println!("{}", i); }
C. for (i in 1..3) println!("{}", i);
D. for i in range(1,3) { println!("{}", i); }

Solution

  1. Step 1: Recall Rust for loop syntax

    Rust uses for variable in range { } with ranges like 1..=3 to include 3.
  2. Step 2: Check each option

    for i in 1..=3 { println!("{}", i); } uses correct Rust syntax with inclusive range. Others use invalid syntax or functions not in Rust.
  3. Final Answer:

    for i in 1..=3 { println!("{}", i); } -> Option B
  4. Quick Check:

    Rust for loop uses in and ranges [OK]
Hint: Use 'for var in start..=end' for inclusive ranges [OK]
Common Mistakes:
  • Using 'to' instead of 'in' keyword
  • Using parentheses around loop variable
  • Using Python or other language range syntax
3. What is the output of this Rust code?
let mut sum = 0;
for i in 1..4 {
    sum += i;
}
println!("{}", sum);
medium
A. 6
B. 10
C. 9
D. 7

Solution

  1. Step 1: Identify the loop range and iterations

    The loop runs for i = 1, 2, 3 because 1..4 excludes 4.
  2. Step 2: Calculate the sum of iterations

    sum = 0 + 1 + 2 + 3 = 6
  3. Final Answer:

    6 -> Option A
  4. Quick Check:

    1+2+3 = 6 [OK]
Hint: Remember range excludes the end number [OK]
Common Mistakes:
  • Including 4 in the sum
  • Starting sum at 1 instead of 0
  • Confusing inclusive and exclusive ranges
4. Find the error in this Rust for loop code:
for i in 0..5
    println!("{}", i);
}
medium
A. Variable i is not declared
B. Range syntax is incorrect
C. println! macro is used incorrectly
D. Missing curly braces around loop body

Solution

  1. Step 1: Check loop syntax

    Rust requires curly braces { } around the loop body if it has more than one statement or to be explicit.
  2. Step 2: Identify the missing brace

    The code has a closing brace '}' without an opening brace '{' before println!().
  3. Final Answer:

    Missing curly braces around loop body -> Option D
  4. Quick Check:

    For loop body needs braces [OK]
Hint: Always use braces {} for loop bodies [OK]
Common Mistakes:
  • Forgetting opening brace
  • Assuming range syntax is wrong
  • Thinking variable needs declaration outside loop
5. How can you use a for loop in Rust to print only even numbers from 2 to 10 inclusive?
hard
A. for i in 2..=10 { if i % 2 == 0 { println!("{}", i); } }
B. for i in 2..10 { if i % 2 = 0 { println!("{}", i); } }
C. for i in 2..=10 { if i / 2 == 0 { println!("{}", i); } }
D. for i in 2..=10 { if i % 2 != 0 { println!("{}", i); } }

Solution

  1. Step 1: Understand the range and condition

    We want numbers from 2 to 10 inclusive, so use 2..=10. To print even numbers, check if remainder when divided by 2 is zero.
  2. Step 2: Check each option's condition

    for i in 2..=10 { if i % 2 == 0 { println!("{}", i); } } correctly uses i % 2 == 0. for i in 2..10 { if i % 2 = 0 { println!("{}", i); } } uses assignment (=) instead of comparison (==). for i in 2..=10 { if i / 2 == 0 { println!("{}", i); } } uses division instead of modulo. for i in 2..=10 { if i % 2 != 0 { println!("{}", i); } } prints odd numbers.
  3. Final Answer:

    for i in 2..=10 { if i % 2 == 0 { println!("{}", i); } } -> Option A
  4. Quick Check:

    Use modulo == 0 for even check [OK]
Hint: Use 'if i % 2 == 0' inside for loop [OK]
Common Mistakes:
  • Using '=' instead of '==' in condition
  • Using division instead of modulo
  • Printing odd numbers by mistake
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