📖 Scenario: Imagine you want to count how many times you can subtract 3 from a number until it becomes less than or equal to 0. This is like checking repeatedly with a condition, similar to a while loop.
🎯 Goal: You will write a Go program that uses a for loop as a while loop to count how many times 3 can be subtracted from a starting number.
📋 What You'll Learn
Create a variable number with the value 20
Create a variable count initialized to 0
Use a for loop with a condition to subtract 3 from number until it is less than or equal to 0
Increase count by 1 each time inside the loop
Print the final value of count
💡 Why This Matters
🌍 Real World
Using loops with conditions is common when you want to repeat actions until something changes, like counting down time or processing items until none are left.
💼 Career
Understanding how to use loops as conditions is important for writing efficient and clear code in many programming jobs, especially when working with Go.
Progress0 / 4 steps
1
Create the starting number variable
Create a variable called number and set it to 20.
Go
Hint
Use number := 20 to create the variable.
2
Add a counter variable
Add a variable called count and set it to 0 below the number variable.
Go
Hint
Use count := 0 to create the counter variable.
3
Use a for loop as a while loop
Write a for loop with the condition number > 0. Inside the loop, subtract 3 from number and add 1 to count.
Go
Hint
The for loop in Go can be used like a while loop by giving only a condition.
4
Print the count
Add a fmt.Println(count) statement to print the value of count. Remember to import the fmt package at the top.
Go
Hint
Use fmt.Println(count) to show the final 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
Step 1: Understand Go's while loop syntax
Go uses for condition { } to act like a while loop.
Step 2: Identify the correct syntax
for i < 5 { i++ } uses for i < 5 { i++ }, which is valid Go syntax for a while loop.
Final Answer:
for i < 5 { i++ } -> Option A
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
Step 1: Check syntax for Go while loop
Go uses for condition { } without parentheses around condition.
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.
Final Answer:
i := 1
for i <= 3 {
fmt.Println(i)
i++
} -> Option A
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
Step 1: Analyze loop condition and initial value
Variable i starts at 0 and loop runs while i < 3.
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.
Final Answer:
0 1 2 -> Option B
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
Step 1: Check loop condition and body
The loop condition is valid, but i is never changed inside the loop.
Step 2: Understand consequences of missing increment
Without incrementing i, the condition i < 3 remains true forever, causing an infinite loop.
Final Answer:
Missing increment of i inside the loop causing infinite loop -> Option D
Quick Check:
Change loop variable inside loop to avoid infinite loop [OK]
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
Step 1: Understand the loop condition for reading input
We want to keep reading until input equals "exit".
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.
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.
Final Answer:
Use infinite for loop with break on "exit" input -> Option C
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 unknownstrongwhile earning +1 Grip toward your certificate.