Bird
Raised Fist0
Goprogramming~20 mins

Return inside loops in Go - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
๐ŸŽ–๏ธ
Return Mastery in Go
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
What is the output of this Go code with return inside a loop?

Look at this Go function. What will it print when called?

Go
package main
import "fmt"

func findFirstEven(nums []int) int {
    for _, n := range nums {
        if n%2 == 0 {
            return n
        }
    }
    return -1
}

func main() {
    fmt.Println(findFirstEven([]int{1, 3, 5, 6, 8}))
}
A-1
B6
C0
D8
Attempts:
2 left
๐Ÿ’ก Hint

Remember, return exits the function immediately.

โ“ Predict Output
intermediate
1:30remaining
What does this Go function return?

What value does this function return when called with []int{7, 9, 11}?

Go
func findFirstEven(nums []int) int {
    for _, n := range nums {
        if n%2 == 0 {
            return n
        }
    }
    return -1
}
A11
B0
C7
D-1
Attempts:
2 left
๐Ÿ’ก Hint

If no even number is found, what does the function return?

๐Ÿ”ง Debug
advanced
2:30remaining
Why does this Go function always return 0?

Look at this function. It is supposed to return the first even number from the slice, but it always returns 0. Why?

Go
func findFirstEven(nums []int) int {
    for i := 0; i < len(nums); i++ {
        if nums[i]%2 == 0 {
            break
        }
    }
    return 0
}
AThe function returns inside the loop, so it exits too early.
BThe loop condition is wrong and never runs.
CThe function uses break instead of return, so it never returns the even number found.
DThe function returns -1 instead of 0.
Attempts:
2 left
๐Ÿ’ก Hint

What does break do inside a loop?

๐Ÿ“ Syntax
advanced
2:00remaining
Which option causes a compile error in Go?

Which of these code snippets will cause a compile error due to incorrect use of return inside a loop?

A
func findFirstEven(nums []int) int {
    for _, n := range nums {
        if n%2 == 0 {
            return n
        }
    }
}
B
1- nruter
}
}    
n nruter        
{ 0 == 2%n fi    
{ smun egnar =: n ,_ rof
C
for _, n := range nums {
    if n%2 == 0 {
        return n
    }
}
return -1
D
for i := 0; i &lt; len(nums); i++ {
    if nums[i]%2 == 0 {
        return nums[i]
    }
}
return -1
Attempts:
2 left
๐Ÿ’ก Hint

Check if the function always returns a value on all paths.

๐Ÿš€ Application
expert
3:00remaining
What is the output of this Go program with nested loops and return?

What will this Go program print?

Go
package main
import "fmt"

func findPair(nums []int, target int) (int, int) {
    for i := 0; i < len(nums); i++ {
        for j := i + 1; j < len(nums); j++ {
            if nums[i]+nums[j] == target {
                return nums[i], nums[j]
            }
        }
    }
    return -1, -1
}

func main() {
    a, b := findPair([]int{1, 3, 5, 7, 9}, 12)
    fmt.Println(a, b)
}
A3 9
B5 7
C-1 -1
D1 11
Attempts:
2 left
๐Ÿ’ก Hint

The function returns the first pair that sums to the target.

Practice

(1/5)
1.

What happens when you use return inside a for loop in Go?

easy
A. The function stops immediately and returns the value.
B. Only the current loop iteration stops, and the loop continues.
C. The loop skips the current iteration and moves to the next.
D. The loop runs forever without stopping.

Solution

  1. Step 1: Understand the role of return in functions

    In Go, return immediately ends the function and sends back a value.
  2. Step 2: Effect of return inside a loop

    When return is inside a loop, it stops the whole function, not just the loop.
  3. Final Answer:

    The function stops immediately and returns the value. -> Option A
  4. Quick Check:

    Return ends function, not just loop [OK]
Hint: Return inside loop ends function immediately [OK]
Common Mistakes:
  • Thinking return only stops the loop
  • Confusing return with break
  • Assuming loop continues after return
2.

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
}
easy
A. return n
B. break
C. continue
D. return nums

Solution

  1. Step 1: Identify what to return inside the loop

    The function should return the first even number found, which is n.
  2. Step 2: Use return to stop function and send back the number

    Using return n immediately ends the function and returns the even number.
  3. Final Answer:

    return n -> Option A
  4. Quick Check:

    Return value inside loop to stop function [OK]
Hint: Use return with value to exit function inside loop [OK]
Common Mistakes:
  • Using break instead of return
  • Using continue which skips iteration
  • Returning the whole slice instead of a number
3.

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}))
}
medium
A. 10
B. -3
C. 0
D. 5

Solution

  1. Step 1: Trace the loop over the slice

    The loop checks each number: -3 (not >0), -2 (not >0), 0 (not >0), 5 (>0).
  2. Step 2: Return the first positive number found

    When it reaches 5, it returns 5 immediately, ending the function.
  3. Final Answer:

    5 -> Option D
  4. Quick Check:

    Return stops at first positive number 5 [OK]
Hint: Return inside loop returns first matching value [OK]
Common Mistakes:
  • Assuming loop continues after return
  • Returning 0 instead of first positive
  • Confusing index with value
4.

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
}
medium
A. Returning 0 instead of -1 when no negative found
B. Missing else statement after if
C. Using break instead of return inside the loop
D. Loop variable should be index, not value

Solution

  1. Step 1: Understand break vs return inside loop

    Using break only stops the loop, but the function continues and returns 0.
  2. Step 2: Correct usage is return to stop function and return value

    To return the first negative number, use return n inside the if block.
  3. Final Answer:

    Using break instead of return inside the loop -> Option C
  4. Quick Check:

    Return ends function; break only stops loop [OK]
Hint: Use return, not break, to exit function inside loop [OK]
Common Mistakes:
  • Using break instead of return
  • Expecting break to return value
  • Not returning value inside loop
5.

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"
}
hard
A. break
B. return w
C. continue
D. return words[0]

Solution

  1. Step 1: Identify the correct return value inside the loop

    The function should return the first word starting with 'A', which is w.
  2. Step 2: Use return to immediately end the function and return the word

    Using return w stops the function and returns the found word.
  3. Final Answer:

    return w -> Option B
  4. Quick Check:

    Return found word inside loop to stop function [OK]
Hint: Return matching item inside loop to stop function early [OK]
Common Mistakes:
  • Using break which only stops loop
  • Using continue which skips iteration
  • Returning wrong element like words[0]
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