Оператор break

Оператор break в Go используется для досрочного выхода из циклов for, а также из конструкций switch и select. При выполнении этого оператора происходит немедленное завершение текущей итерации и выход из блока кода. Оператор break может использоваться с меткой для выхода из вложенных циклов.

Синтаксис

gobreak

Для выхода из вложенного цикла с меткой:

gobreak Label

Пример

Давайте используем оператор break для выхода из цикла for при достижении определенного условия:

gopackage main

import "fmt"

func main() {
  for i := 0; i < 10; i++ {
    if i == 5 {
      fmt.Println("Breaking at i =", i)
      break
    }
    fmt.Println("i =", i)
  }
}

Результат выполнения кода:

go"i = 0"
"i = 1"
"i = 2"
"i = 3"
"i = 4"
"Breaking at i = 5"

Пример

Давайте рассмотрим использование оператора break в бесконечном цикле for:

gopackage main

import "fmt"

func main() {
  counter := 0
  for {
    fmt.Println("Iteration", counter)
    counter++
    if counter == 3 {
      fmt.Println("Breaking infinite loop")
      break
    }
  }
}

Результат выполнения кода:

go"Iteration 0"
"Iteration 1"
"Iteration 2"
"Breaking infinite loop"

Пример

Давайте рассмотрим использование метки для выхода из вложенного цикла:

gopackage main

import "fmt"

func main() {
  outer:
  for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
      fmt.Printf("i=%d, j=%d\n", i, j)
      if i == 1 && j == 1 {
        fmt.Println("Breaking both loops")
        break outer
      }
    }
  }
  fmt.Println("Loop finished")
}

Результат выполнения кода:

go"i=0, j=0"
"i=0, j=1"
"i=0, j=2"
"i=1, j=0"
"i=1, j=1"
"Breaking both loops"
"Loop finished"

Пример

Давайте рассмотрим использование оператора break в конструкции switch:

gopackage main

import "fmt"

func main() {
  for i := 0; i < 5; i++ {
    switch i {
    case 0:
      fmt.Println("Zero")
    case 1:
      fmt.Println("One")
    default:
      fmt.Println("Other number:", i)
      break
    }
    fmt.Println("After switch")
  }
}

Результат выполнения кода:

go"Zero"
"After switch"
"One"
"After switch"
"Other number: 2"
"Other number: 3"
"Other number: 4"

Смотрите также

  • оператор for,
    который организует циклы в Go
  • оператор continue,
    который пропускает текущую итерацию цикла
  • оператор switch,
    который организует множественное ветвление
  • оператор return,
    который завершает выполнение функции