Bird
Raised Fist0
Goprogramming~10 mins

For loop as while in Go - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - For loop as while
Initialize variable
↓
Check condition
Yes↓
Execute loop body
↓
Update variable
Back to Check↓
Exit loop
↩Back to Check
This flow shows how a for loop in Go can act like a while loop by initializing a variable, checking a condition before each iteration, running the loop body, updating the variable, and repeating until the condition is false.
Execution Sample
Go
package main
import "fmt"
func main() {
  i := 0
  for i < 3 {
    fmt.Println(i)
    i++
  }
}
This Go code uses a for loop like a while loop to print numbers 0, 1, and 2 by looping while i is less than 3.
Execution Table
Stepi valueCondition (i < 3)ActionOutput
10truePrint 0, i++0
21truePrint 1, i++1
32truePrint 2, i++2
43falseExit loop
💡 i reaches 3, condition i < 3 is false, loop stops
Variable Tracker
VariableStartAfter 1After 2After 3Final
i01233
Key Moments - 2 Insights
Why does the loop stop when i equals 3?
Because the condition i < 3 becomes false at step 4 in the execution_table, so the loop exits before printing.
Is the variable i updated before or after printing?
The variable i is updated after printing in each loop iteration, as shown in the Action column of the execution_table.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of i at step 2?
A1
B0
C2
D3
💡 Hint
Check the 'i value' column at step 2 in the execution_table.
At which step does the condition i < 3 become false?
AStep 3
BStep 4
CStep 2
DStep 1
💡 Hint
Look at the 'Condition (i < 3)' column in the execution_table.
If we change the condition to i < 2, how many times will the loop run?
A1 time
B3 times
C2 times
D0 times
💡 Hint
Refer to the variable_tracker and how the condition controls loop iterations.
Concept Snapshot
Go's for loop can act like a while loop:
- Initialize variable before loop
- Use for with condition only: for i < limit {
- Loop runs while condition true
- Update variable inside loop
- Stops when condition false
Full Transcript
This example shows how to use Go's for loop like a while loop by checking a condition before each iteration. We start with i = 0, then loop while i is less than 3. Each time, we print i and then increase it by one. When i reaches 3, the condition becomes false and the loop stops. The execution table tracks each step, showing the value of i, the condition check, the action taken, and the output printed. The variable tracker shows how i changes after each iteration. Key moments clarify why the loop stops and when i is updated. The quiz questions help check understanding by asking about i's value at certain steps and how changing the condition affects the loop count.

Practice

(1/5)
1. Which of the following is the correct way to write a while loop in Go using a for loop?
easy
A. for i < 5 { i++ }
B. while i < 5 { i++ }
C. for (i < 5) { i++ }
D. loop i < 5 { i++ }

Solution

  1. Step 1: Understand Go's while loop syntax

    Go uses for condition { } to act like a while loop.
  2. Step 2: Identify the correct syntax

    for i < 5 { i++ } uses for i < 5 { i++ }, which is valid Go syntax for a while loop.
  3. Final Answer:

    for i < 5 { i++ } -> Option A
  4. Quick Check:

    Go while loop = for condition { } [OK]
Hint: Remember: Go uses 'for' with condition as while loop [OK]
Common Mistakes:
  • Using 'while' keyword which Go does not support
  • Adding parentheses around the condition unnecessarily
  • Using 'loop' keyword which is invalid in Go
2. Which of the following Go code snippets correctly uses a for loop as a while loop to print numbers from 1 to 3?
easy
A. i := 1 for i <= 3 { fmt.Println(i) i++ }
B. i := 1 for (i <= 3) { fmt.Println(i) i++ }
C. i := 1 for i < 3 { fmt.Println(i) i++ }
D. i := 1 while i <= 3 { fmt.Println(i) i++ }

Solution

  1. Step 1: Check syntax for Go while loop

    Go uses for condition { } without parentheses around condition.
  2. Step 2: Verify loop condition and output

    i := 1 for i <= 3 { fmt.Println(i) i++ } uses i <= 3 and increments i, printing 1, 2, 3 correctly.
  3. Final Answer:

    i := 1 for i <= 3 { fmt.Println(i) i++ } -> Option A
  4. Quick Check:

    Correct Go while loop syntax = i := 1 for i <= 3 { fmt.Println(i) i++ } [OK]
Hint: No parentheses needed around condition in Go for loop [OK]
Common Mistakes:
  • Using 'while' keyword which is invalid in Go
  • Using '<' instead of '<=' causing missing last number
  • Adding parentheses around condition causing syntax error
3. What will be the output of the following Go code?
i := 0
for i < 3 {
    fmt.Print(i, " ")
    i++
}
medium
A. 1 2 3
B. 0 1 2
C. 0 1 2 3
D. 1 2

Solution

  1. Step 1: Analyze loop condition and initial value

    Variable i starts at 0 and loop runs while i < 3.
  2. Step 2: Trace loop iterations and output

    i prints 0, then increments to 1; prints 1, increments to 2; prints 2, increments to 3; loop stops.
  3. Final Answer:

    0 1 2 -> Option B
  4. Quick Check:

    Loop prints 0 to 2 with spaces [OK]
Hint: Loop runs while condition true, stops when false [OK]
Common Mistakes:
  • Assuming loop includes i=3 output
  • Starting i from 1 instead of 0
  • Forgetting to increment i causing infinite loop
4. Identify the error in the following Go code that tries to use a for loop as a while loop:
i := 0
for i < 3 {
    fmt.Println(i)
}
medium
A. Variable i should be declared inside the loop
B. Incorrect loop condition syntax
C. Using fmt.Println instead of fmt.Print
D. Missing increment of i inside the loop causing infinite loop

Solution

  1. Step 1: Check loop condition and body

    The loop condition is valid, but i is never changed inside the loop.
  2. Step 2: Understand consequences of missing increment

    Without incrementing i, the condition i < 3 remains true forever, causing an infinite loop.
  3. Final Answer:

    Missing increment of i inside the loop causing infinite loop -> Option D
  4. Quick Check:

    Change loop variable inside loop to avoid infinite loop [OK]
Hint: Always update loop variable inside for-as-while loop [OK]
Common Mistakes:
  • Forgetting to increment or change loop variable
  • Thinking fmt.Println causes error
  • Declaring variable inside loop unnecessarily
5. You want to use a for loop as a while loop in Go to read user input until the user types "exit". Which code snippet correctly implements this?
hard
A. var input string for input != "exit" { fmt.Print("Enter text: ") fmt.Scanln(&input) }
B. var input string for input == "exit" { fmt.Print("Enter text: ") fmt.Scanln(&input) }
C. var input string for { fmt.Print("Enter text: ") fmt.Scanln(&input) if input == "exit" { break } }
D. var input string while input != "exit" { fmt.Print("Enter text: ") fmt.Scanln(&input) }

Solution

  1. Step 1: Understand the loop condition for reading input

    We want to keep reading until input equals "exit".
  2. Step 2: Analyze options for correct loop behavior

    var input string for { fmt.Print("Enter text: ") fmt.Scanln(&input) if input == "exit" { break } } uses an infinite loop with a break when input is "exit", which is safe and common in Go.
  3. Step 3: Why other options fail

    var input string for input != "exit" { fmt.Print("Enter text: ") fmt.Scanln(&input) } uses input before reading it, so loop condition is false initially (empty string != "exit" is true, but input is empty initially). var input string for input == "exit" { fmt.Print("Enter text: ") fmt.Scanln(&input) } loops only if input == "exit" which is opposite. var input string while input != "exit" { fmt.Print("Enter text: ") fmt.Scanln(&input) } uses invalid 'while' keyword.
  4. Final Answer:

    Use infinite for loop with break on "exit" input -> Option C
  5. Quick Check:

    Use for { ... if condition { break } } for while loops with input [OK]
Hint: Use infinite loop with break for input-based while loops [OK]
Common Mistakes:
  • Using 'while' keyword which is invalid in Go
  • Checking condition before first input read
  • Using wrong loop condition causing no input read
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