Bird
Raised Fist0
PowerShellscripting~10 mins

For loop in PowerShell - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - For loop
Initialize i=0
↓
Check: i -lt 5?
No→EXIT
Yes↓
Execute body
↓
Update: i = i + 1
↩Back to Check
The loop starts by setting i to 0, then checks if i is less than 5. If yes, it runs the loop body, then increases i by 1 and repeats. If no, it stops.
Execution Sample
PowerShell
for ($i = 0; $i -lt 5; $i++) {
    Write-Output $i
}
This loop prints numbers from 0 to 4, increasing i by 1 each time until i is no longer less than 5.
Execution Table
IterationiCondition ($i -lt 5)ActionOutput
10TruePrint 0, i++0
21TruePrint 1, i++1
32TruePrint 2, i++2
43TruePrint 3, i++3
54TruePrint 4, i++4
65FalseExit loop
💡 i reaches 5, condition 5 -lt 5 is False, loop stops
Variable Tracker
VariableStartAfter 1After 2After 3After 4After 5Final
i0123455
Key Moments - 3 Insights
Why does the loop stop when i equals 5?
Because the condition $i -lt 5 becomes False at i=5, as shown in execution_table row 6, so the loop exits.
Does the loop print the number 5?
No, the loop prints numbers only when the condition is True. At i=5, condition is False (row 6), so it does not print 5.
What happens to i after each loop iteration?
i increases by 1 after each iteration, as shown in variable_tracker from 0 up to 5.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of i during iteration 3?
A2
B3
C1
D0
💡 Hint
Check the 'i' column in execution_table row for iteration 3.
At which iteration does the loop condition become false?
A5
B6
C4
D1
💡 Hint
Look at the 'Condition' column in execution_table where it changes to False.
If we change the condition to $i -le 5, how many times will the loop run?
A5 times
B4 times
C6 times
D7 times
💡 Hint
Think about when $i -le 5 is True, and check variable_tracker for i values.
Concept Snapshot
For loop syntax in PowerShell:
for (<init>; <condition>; <update>) {
  <body>
}
Loop runs while condition is True.
Update runs after each iteration.
Stops when condition is False.
Full Transcript
This PowerShell for loop example starts with i=0. It checks if i is less than 5. If yes, it prints i and then increases i by 1. This repeats until i reaches 5, when the condition becomes false and the loop stops. The output is numbers 0 to 4 printed one by one. The variable i changes from 0 up to 5, increasing by 1 each time. The loop never prints 5 because the condition fails at that point.

Practice

(1/5)
1.

What does a for loop in PowerShell do?

easy
A. Defines a function
B. Runs code only once
C. Stops the script immediately
D. Repeats a block of code a set number of times

Solution

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

    A for loop is designed to repeat code multiple times based on a condition.
  2. Step 2: Compare options with the definition

    Only Repeats a block of code a set number of times correctly describes repeating code a set number of times.
  3. Final Answer:

    Repeats a block of code a set number of times -> Option D
  4. Quick Check:

    For loop = repeat code [OK]
Hint: For loops repeat code multiple times [OK]
Common Mistakes:
  • Thinking for loop runs only once
  • Confusing for loop with function definition
  • Believing for loop stops script
2.

Which of the following is the correct syntax for a for loop in PowerShell?

for (init; condition; increment) { code }
easy
A. for ($i=0; $i -lt 5; $i++) { Write-Output $i }
B. for $i in 0..5 { Write-Output $i }
C. foreach ($i=0; $i -lt 5; $i++) { Write-Output $i }
D. while ($i=0; $i -lt 5; $i++) { Write-Output $i }

Solution

  1. Step 1: Identify correct for loop syntax

    PowerShell for loops use parentheses with init; condition; increment separated by semicolons.
  2. Step 2: Check each option

    for ($i=0; $i -lt 5; $i++) { Write-Output $i } matches correct syntax. A uses while keyword. B has invalid 'for $i in' syntax. C uses foreach keyword. [OK]
  3. Final Answer:

    for ($i=0; $i -lt 5; $i++) { Write-Output $i } -> Option A
  4. Quick Check:

    Correct for loop syntax = for ($i=0; $i -lt 5; $i++) { Write-Output $i } [OK]
Hint: For loop uses semicolons inside parentheses [OK]
Common Mistakes:
  • Using foreach instead of for
  • Using spaces instead of semicolons
  • Confusing while loop syntax
3.

What will be the output of this PowerShell code?

for ($i=1; $i -le 3; $i++) { Write-Output ($i * 2) }
medium
A. 0 2 4
B. 1 2 3
C. 2 4 6
D. 3 6 9

Solution

  1. Step 1: Understand loop iterations

    The loop runs with $i values 1, 2, and 3 because condition is $i -le 3.
  2. Step 2: Calculate output for each iteration

    Output is $i * 2: 1*2=2, 2*2=4, 3*2=6.
  3. Final Answer:

    2 4 6 -> Option C
  4. Quick Check:

    Multiply each i by 2 = 2 4 6 [OK]
Hint: Multiply loop variable by 2 each iteration [OK]
Common Mistakes:
  • Confusing loop range
  • Multiplying after loop ends
  • Printing loop variable instead of calculation
4.

Identify the error in this PowerShell for loop:

for (; $i < 5; $i++) { Write-Output $i }
medium
A. The increment operator '++' is invalid in PowerShell
B. The loop variable $i is not initialized
C. The condition uses '<' instead of '-lt'
D. The loop body is missing curly braces

Solution

  1. Step 1: Check initialization syntax in for loop

    The initialization part is empty; $i needs to be initialized (e.g., $i=0).
  2. Step 2: Verify other parts

    Increment '++' is valid, condition '<' works for numbers, braces are present.
  3. Final Answer:

    The loop variable $i is not initialized -> Option B
  4. Quick Check:

    Always initialize $i in for loop [OK]
Hint: Initialize loop variable in for loop [OK]
Common Mistakes:
  • Forgetting to initialize loop variable
  • Thinking '++' is invalid
  • Using C-style operators like '<' in PowerShell
5.

You want to print only even numbers from 2 to 10 using a for loop in PowerShell. Which code snippet achieves this?

hard
A. for ($i=2; $i -le 10; $i+=2) { Write-Output $i }
B. for ($i=1; $i -lt 10; $i++) { if ($i % 2 -eq 0) { Write-Output $i } }
C. for ($i=2; $i -lt 10; $i++) { Write-Output $i }
D. for ($i=0; $i -le 10; $i+=3) { Write-Output $i }

Solution

  1. Step 1: Understand the goal

    We want to print even numbers from 2 to 10 inclusive.
  2. Step 2: Analyze each option

    for ($i=1; $i -lt 10; $i++) { if ($i % 2 -eq 0) { Write-Output $i } } goes to i<10 so prints 2,4,6,8 (misses 10). for ($i=2; $i -le 10; $i+=2) { Write-Output $i } starts at 2, increments by 2 up to 10: 2,4,6,8,10. for ($i=2; $i -lt 10; $i++) { Write-Output $i } prints 2-9 all numbers. for ($i=0; $i -le 10; $i+=3) { Write-Output $i } wrong start/step.
  3. Final Answer:

    for ($i=2; $i -le 10; $i+=2) { Write-Output $i } -> Option A
  4. Quick Check:

    Increment by 2 from 2 to 10 = even numbers [OK]
Hint: Increment by 2 starting at 2 for even numbers [OK]
Common Mistakes:
  • Using wrong increment step
  • Starting from 1 instead of 2
  • Not filtering for even numbers
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