РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
9 of 1593 menu

Оператор goto

Оператор goto выполняет безусловный переход к метке в пределах одной функции. Метка представляет собой идентификатор, после которого ставится двоеточие. Оператор goto позволяет передать управление на строку с указанной меткой, минуя промежуточный код. В качестве метки можно использовать любой допустимый идентификатор Go.

Синтаксис

goto label // ... label: // код после метки

Пример

Давайте используем оператор goto для создания простого цикла, который выводит числа от 1 до 5:

package main import "fmt" func main() { i := 1 start: if i > 5 { goto end } fmt.Println(i) i++ goto start end: fmt.Println("Loop finished") }

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

1 2 3 4 5 "Loop finished"

Пример

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

package main import "fmt" func main() { for i := 0; i < 5; i++ { for j := 0; j < 5; j++ { if i == 2 && j == 2 { goto found } fmt.Printf("i=%d, j=%d\n", i, j) } } fmt.Println("Not found") return found: fmt.Println("Found at i=2, j=2") }

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

"i=0, j=0" "i=0, j=1" "i=0, j=2" "i=0, j=3" "i=0, j=4" "i=1, j=0" "i=1, j=1" "i=1, j=2" "i=1, j=3" "i=1, j=4" "i=2, j=0" "i=2, j=1" "Found at i=2, j=2"

Пример

Давайте продемонстрируем, что оператор goto не может перепрыгивать через объявление переменных:

package main import "fmt" func main() { goto skip x := 10 skip: // x не доступна здесь, так как объявление пропущено fmt.Println("Skipped variable declaration") // fmt.Println(x) // Это вызовет ошибку компиляции }

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

"Skipped variable declaration"

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

  • оператор break,
    который прерывает выполнение цикла
  • оператор continue,
    который пропускает текущую итерацию цикла
  • оператор switch,
    который выполняет выбор из нескольких вариантов
  • оператор return,
    который завершает выполнение функции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить