📖 Scenario: Imagine you are organizing a small party and you have a list of guests. You want to greet each guest but stop greeting if you see a guest named "John" because he is running late and you want to wait for him before continuing.
🎯 Goal: You will create a program that loops through a list of guest names and stops the loop when it finds the name "John". This will teach you why controlling loops is important to avoid unnecessary work or to handle special cases.
📋 What You'll Learn
Create a slice of strings called guests with these exact names: "Alice", "Bob", "John", "Diana", "Eve"
Create a variable called stopName and set it to "John"
Use a for loop with index i and value guest to iterate over guests
Inside the loop, use an if statement to check if guest equals stopName and use break to stop the loop
Print "Greeting " followed by the guest's name for each guest greeted before stopping
💡 Why This Matters
🌍 Real World
Loop control is useful when you want to stop or skip parts of a loop based on conditions, like stopping a process when a special case happens.
💼 Career
Understanding loop control helps in writing efficient programs that do not waste time or resources by processing unnecessary data.
Progress0 / 4 steps
1
Create the guest list
Create a slice of strings called guests with these exact names: "Alice", "Bob", "John", "Diana", "Eve"
Go
Hint
Use guests := []string{} to create the list with the exact names inside curly braces.
2
Add the stop name variable
Create a variable called stopName and set it to "John"
Go
Hint
Use stopName := "John" to create the variable.
3
Loop through guests and stop at stopName
Use a for loop with index i and value guest to iterate over guests. Inside the loop, use an if statement to check if guest equals stopName and use break to stop the loop.
Go
Hint
Use for i, guest := range guests to loop. Use if guest == stopName and break inside the loop.
4
Print greetings before stopping
Inside the loop, print "Greeting " followed by the guest's name for each guest greeted before stopping. Use fmt.Println to print.
Go
Hint
Use fmt.Println("Greeting", guest) inside the loop after the if check.
Practice
(1/5)
1. Why is loop control like break or continue required in Go loops?
easy
A. To print output inside the loop
B. To declare variables inside the loop
C. To define the loop variable type
D. To manage when to stop or skip parts of the loop
Solution
Step 1: Understand loop control purpose
Loop control statements like break and continue help decide when to stop or skip parts of a loop.
Step 2: Identify correct usage
They do not declare variables or print output; their role is to control loop flow.
Final Answer:
To manage when to stop or skip parts of the loop -> Option D
Quick Check:
Loop control = manage loop flow [OK]
Hint: Loop control changes loop flow, not variable types [OK]
Common Mistakes:
Thinking loop control declares variables
Confusing loop control with output commands
Assuming loop control sets variable types
2. Which of the following is the correct syntax to skip the current iteration in a Go for loop?
easy
A. skip
B. break
C. continue
D. next
Solution
Step 1: Recall Go loop control keywords
In Go, continue skips the current iteration and moves to the next.
Step 2: Differentiate from other keywords
break stops the loop entirely; skip and next are not valid Go keywords.
Final Answer:
continue -> Option C
Quick Check:
Skip iteration = continue [OK]
Hint: Use continue to skip current loop iteration [OK]
Common Mistakes:
Using break to skip iteration instead of stopping loop
Using non-existent keywords like skip or next
Confusing continue with break
3. What will be the output of this Go code?
for i := 1; i <= 5; i++ {
if i == 3 {
break
}
fmt.Print(i, " ")
}
medium
A. 1 2
B. 1 2 3 4 5
C. 3 4 5
D. 1 2 3
Solution
Step 1: Analyze loop and break condition
The loop runs from 1 to 5, but breaks when i == 3.
Step 2: Determine printed values before break
It prints values before break: 1 and 2, then stops at 3 without printing it.
Final Answer:
1 2 -> Option A
Quick Check:
Break stops loop at 3, prints before break [OK]
Hint: Break stops loop immediately, print before break only [OK]
Common Mistakes:
Assuming break prints the break value
Thinking loop continues after break
Confusing break with continue
4. Identify the error in this Go loop code:
for i := 0; i < 5; i++ {
if i == 2 {
continue
}
fmt.Println(i)
break
}
medium
A. The break is inside the loop, so loop stops after first iteration
B. continue is used incorrectly and causes syntax error
C. Loop variable i is not declared properly
D. fmt.Println is not allowed inside loops
Solution
Step 1: Understand loop flow with continue and break
When i == 2, continue skips printing and break is after print, so loop stops after first iteration.
Step 2: Identify why loop stops early
Break inside loop after print causes loop to stop immediately, so only one value prints.
Final Answer:
The break is inside the loop, so loop stops after first iteration -> Option A
Quick Check:
Break inside loop stops it early [OK]
Hint: Break inside loop stops all iterations immediately [OK]
Common Mistakes:
Thinking continue causes syntax error
Assuming break is outside loop
Believing fmt.Println can't be inside loops
5. You want to print all numbers from 1 to 10 except multiples of 3 using a Go loop. Which code snippet correctly uses loop control to achieve this?
hard
A. for i := 1; i <= 10; i++ {
if i % 3 == 0 {
break
}
fmt.Println(i)
}
B. for i := 1; i <= 10; i++ {
if i % 3 == 0 {
continue
}
fmt.Println(i)
}
C. for i := 1; i <= 10; i++ {
if i % 3 == 0 {
fmt.Println(i)
}
}
D. for i := 1; i <= 10; i++ {
fmt.Println(i)
if i % 3 == 0 {
continue
}
}
Solution
Step 1: Understand the requirement
We want to skip printing multiples of 3 but continue the loop for others.
Step 2: Analyze each option
for i := 1; i <= 10; i++ {
if i % 3 == 0 {
break
}
fmt.Println(i)
} breaks loop on multiples of 3, stopping early. for i := 1; i <= 10; i++ {
if i % 3 == 0 {
continue
}
fmt.Println(i)
} uses continue to skip multiples of 3 correctly. for i := 1; i <= 10; i++ {
if i % 3 == 0 {
fmt.Println(i)
}
} prints only multiples of 3, wrong. for i := 1; i <= 10; i++ {
fmt.Println(i)
if i % 3 == 0 {
continue
}
} prints all numbers including multiples of 3.
Final Answer:
Option B code correctly skips multiples of 3 using continue -> Option B
Quick Check:
Use continue to skip unwanted iterations [OK]
Hint: Use continue to skip unwanted loop iterations [OK]
Common Mistakes:
Using break instead of continue stops loop early
Printing only multiples instead of skipping them
Placing continue after print causing unwanted output
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.