Using return inside loops lets you stop the function and give back a result as soon as you find what you need.
Return inside loops in Go
for condition { if someCheck { return value } }
The return statement immediately ends the function, even if inside a loop.
Code after return inside the loop will not run once return is executed.
func findFirstEven(numbers []int) int { for _, num := range numbers { if num%2 == 0 { return num } } return -1 // if no even number found }
true immediately when it finds one.func containsNegative(nums []int) bool { for _, n := range nums { if n < 0 { return true } } return false }
This program looks for the first positive number in the list. It returns and prints it as soon as it finds it.
package main import "fmt" func findFirstPositive(nums []int) int { for _, n := range nums { if n > 0 { return n } } return 0 } func main() { numbers := []int{-3, -2, 0, 4, 5} result := findFirstPositive(numbers) fmt.Println("First positive number:", result) }
Remember, return ends the whole function, not just the loop.
If you want to skip to the next loop cycle without returning, use continue instead.
Use return inside loops to stop the function early when you find what you need.
This helps make your code faster by not doing extra work.
Be careful: return ends the whole function, not just the loop.
Practice
What happens when you use return inside a for loop in Go?
Solution
Step 1: Understand the role of return in functions
In Go,returnimmediately ends the function and sends back a value.Step 2: Effect of return inside a loop
Whenreturnis inside a loop, it stops the whole function, not just the loop.Final Answer:
The function stops immediately and returns the value. -> Option AQuick Check:
Return ends function, not just loop [OK]
- Thinking return only stops the loop
- Confusing return with break
- Assuming loop continues after return
Which of the following Go code snippets correctly uses return inside a for loop to return the first even number from a slice?
func firstEven(nums []int) int {
for _, n := range nums {
if n % 2 == 0 {
// What goes here?
}
}
return -1
}Solution
Step 1: Identify what to return inside the loop
The function should return the first even number found, which isn.Step 2: Use return to stop function and send back the number
Usingreturn nimmediately ends the function and returns the even number.Final Answer:
return n -> Option AQuick Check:
Return value inside loop to stop function [OK]
- Using break instead of return
- Using continue which skips iteration
- Returning the whole slice instead of a number
What is the output of this Go program?
package main
import "fmt"
func findFirstPositive(nums []int) int {
for _, n := range nums {
if n > 0 {
return n
}
}
return 0
}
func main() {
fmt.Println(findFirstPositive([]int{-3, -2, 0, 5, 10}))
}Solution
Step 1: Trace the loop over the slice
The loop checks each number: -3 (not >0), -2 (not >0), 0 (not >0), 5 (>0).Step 2: Return the first positive number found
When it reaches 5, it returns 5 immediately, ending the function.Final Answer:
5 -> Option DQuick Check:
Return stops at first positive number 5 [OK]
- Assuming loop continues after return
- Returning 0 instead of first positive
- Confusing index with value
Find the error in this Go function that tries to return the first negative number from a slice:
func firstNegative(nums []int) int {
for _, n := range nums {
if n < 0 {
break
}
}
return 0
}Solution
Step 1: Understand break vs return inside loop
Usingbreakonly stops the loop, but the function continues and returns 0.Step 2: Correct usage is return to stop function and return value
To return the first negative number, usereturn ninside the if block.Final Answer:
Using break instead of return inside the loop -> Option CQuick Check:
Return ends function; break only stops loop [OK]
- Using break instead of return
- Expecting break to return value
- Not returning value inside loop
You want to write a Go function that returns the first string in a slice that starts with the letter 'A'. If none is found, return "Not found". Which code correctly uses return inside the loop?
func findA(words []string) string {
for _, w := range words {
if len(w) > 0 && w[0] == 'A' {
// What goes here?
}
}
return "Not found"
}Solution
Step 1: Identify the correct return value inside the loop
The function should return the first word starting with 'A', which isw.Step 2: Use return to immediately end the function and return the word
Usingreturn wstops the function and returns the found word.Final Answer:
return w -> Option BQuick Check:
Return found word inside loop to stop function [OK]
- Using break which only stops loop
- Using continue which skips iteration
- Returning wrong element like words[0]
Ready to prove it?
Pass the test and this pattern moves unknown
