Summary: in this tutorial, you will learn how to use the Go break statement to exit a loop prematurely.
Introduction to the Go break statement
In Go, the break
statement allows you to exit a loop prematurely:
break
Code language: Go (go)
Typically, you terminate the loop based on a condition, therefore, you often use the break
with an if statement like this:
if condition {
break
}
Code language: Go (go)
For example, the following shows how to use the break
statement to terminate a loop that finds the first occurrence of the letter o
in the string "Hello World"
:
package main
import "fmt"
func main() {
messages := "Hello World"
for index, value := range messages {
if value == 'o' {
fmt.Printf("The letter o found at the index %d\n", index)
break
}
}
}
Code language: Go (go)
How it works.
First, declare a message
variable and initialize its value to "Hello World"
:
messages := "Hello World"
Code language: Go (go)
Second, iterate over each character in the string messages using a for range
loop:
for index, value := range messages {
Code language: Go (go)
Third, display the index of the first occurrence of the letter o
and terminate the loop prematurely using the break
statement:
if value == 'o' {
fmt.Printf("The letter o found at the index %d\n", index)
break
}
Code language: Go (go)
If we don’t use the break
statement, the for range
loop will run till the last character of the string Hello World
.
Using Go break statement with a label
The break
statement accepts an optional loop label:
break LoopLabel
Code language: Go (go)
In practice, you use the break
statement with a label when you want to stop inner and outer loops. For example:
package main
import "fmt"
func main() {
matrix := [][] int {
{1, 2, 3},
{4, 5, 6},
{7, 5, 5},
}
target := 5
search:
for i := 0; i < len(matrix); i++ {
for j := 0; j < len(matrix[i]); j++ {
if matrix[i][j] == target {
fmt.Printf("Found %d at (%d, %d)\n", target, i, j)
break search
}
}
}
}
Code language: Go (go)
How it works.
First, declare and initialize a two-dimensional array:
matrix := [][] int {
{1, 2, 3},
{4, 5, 6},
{7, 5, 5},
}
Code language: Go (go)
Second, declare and initialize a variable that holds a value to search:
target := 5
Code language: Go (go)
Third, iterate over the elements of the matrix using two for loops to find the number 5:
search:
for i := 0; i < len(matrix); i++ {
for j := 0; j < len(matrix[i]); j++ {
if matrix[i][j] == target {
fmt.Printf("Found %d at (%d, %d)\n", target, i, j)
break search
}
}
}
Code language: Go (go)
Before the loop, we declare the search
label for using with the break
statement. Inside the loops, when we come across an element with the value 5, we stop both inner and outer loops using the break search
statement.
Summary
- Use the
break
statement to terminate a loop immediately.