Introduction
The break statement in Go is used to exit a loop or switch statement prematurely. It allows you to terminate the execution of a loop or switch case before it completes all its iterations or checks all its cases. In this chapter, you will learn the syntax and usage of the break statement in Go, with examples to illustrate how it works.
Syntax
The break statement can be used within loops (for) and switch statements to exit the loop or switch case immediately.
Syntax:
break
Examples
break in a For Loop
The break statement can be used to exit a for loop when a certain condition is met.
Example:
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i == 5 {
break
}
fmt.Println(i) // Output: 0 1 2 3 4
}
fmt.Println("Loop exited")
}
break in a Nested Loop
The break statement only exits the nearest enclosing loop. To exit an outer loop from within a nested loop, you can use labels.
Example:
package main
import "fmt"
func main() {
outer:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i == 1 && j == 1 {
break outer
}
fmt.Printf("i: %d, j: %d\n", i, j)
}
}
fmt.Println("Exited the outer loop")
}
break in a Switch Statement
The break statement is implicit in Go’s switch statement, meaning that it automatically exits the switch case after executing the matched case. However, you can use break explicitly to improve code readability or to break out of a nested loop within a switch case.
Example:
package main
import "fmt"
func main() {
day := 3
switch day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
break // Explicit break, though not necessary here
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
default:
fmt.Println("Weekend")
}
}
Conclusion
The break statement in Go is a powerful control structure that allows you to exit loops and switch cases prematurely. It is useful for terminating loops when certain conditions are met and for improving code readability in switch statements. By understanding how to use the break statement, you can better control the flow of your programs and handle various scenarios more effectively.