Использование циклов for в Go позволяет эффективно автоматизировать и повторять выполнение задач.
Понимание принципов контроля и работы циклов позволяет использовать в программе персонализированную логику. Вы можете контролировать циклы с помощью выражений break
и continue
.
В языке Go оператор break
останавливает выполнение текущего цикла. Выражение break
почти всегда сочетается с условным выражением if
.
Рассмотрим пример использования выражения break
в цикле for
:
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i == 5 {
fmt.Println("Breaking out of loop")
break // break here
}
fmt.Println("The value of i is", i)
}
fmt.Println("Exiting program")
}
Эта небольшая программа создает цикл for
, выполняющийся пока i
меньше 10
.
В цикле for
содержится выражение if
. Выражение if
проверяет условие i
и сравнивает значение с 5
. Если значение i
не равно 5
, цикл продолжается и распечатывает значение i
. Если значение i
равно 5
, цикл выполняет выражение break
, печатает сообщение о выходе из цикла Breaking out of loop
и останавливает выполнение цикла. После окончания выполнения программы распечатывается сообщение Exiting program
, показывающее, что мы выполнили выход из цикла.
При выполнении этого кода результат будет выглядеть следующим образом:
OutputThe value of i is 0
The value of i is 1
The value of i is 2
The value of i is 3
The value of i is 4
Breaking out of loop
Exiting program
Это показывает, что когда целое число i
оценивается как равное 5, цикл прекращается, о чем программу информирует выражение break
.
Важно отметить, что выражение break
останавливает выполнение только цикла самого низкого выполняемого уровня. Если вы используете набор из нескольких циклов, вложенных друг в друга, вам нужно будет использовать отдельный оператор break для каждого цикла.
package main
import "fmt"
func main() {
for outer := 0; outer < 5; outer++ {
if outer == 3 {
fmt.Println("Breaking out of outer loop")
break // break here
}
fmt.Println("The value of outer is", outer)
for inner := 0; inner < 5; inner++ {
if inner == 2 {
fmt.Println("Breaking out of inner loop")
break // break here
}
fmt.Println("The value of inner is", inner)
}
}
fmt.Println("Exiting program")
}
Эта программа содержит два цикла. Хотя оба цикла выполняют 5 итераций, в каждом из них есть условное выражение if
с выражением break
. Внешний цикл прекращается, если значение outer
равняется 3
. Внутренний цикл прекращается, если значение inner
равняется 2
.
Если мы запустим программу, результат будет выглядеть следующим образом:
OutputThe value of outer is 0
The value of inner is 0
The value of inner is 1
Breaking out of inner loop
The value of outer is 1
The value of inner is 0
The value of inner is 1
Breaking out of inner loop
The value of outer is 2
The value of inner is 0
The value of inner is 1
Breaking out of inner loop
Breaking out of outer loop
Exiting program
Обратите внимание, что при остановке внутреннего цикла внешний цикл не останавливается. Это связано с тем, что выражение break
останавливает только цикл самого низкого уровня, где оно вызывается.
Мы увидели, как выражение break
останавливает выполнение цикла. Теперь посмотрим, как можно продолжить итерации цикла.
Выражение continue
используется, когда вы хотите пропустить оставшуюся часть цикла, вернуться в начало цикла и продолжить новую итерацию этого цикла.
Как и выражение break,
выражение continue
обычно используется вместе с условным выражением if
.
Мы используем ту же программу с циклом for
, что и в предыдущем разделе «Выражение Break», но при этом используем выражение continue
вместо выражения break
:
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i == 5 {
fmt.Println("Continuing loop")
continue // break here
}
fmt.Println("The value of i is", i)
}
fmt.Println("Exiting program")
}
Отличие выражения continue
от выражения break
заключается в том, что код продолжит выполняться несмотря на прерывание, если переменная i
будет оценена как равная 5
. Посмотрим на результаты:
OutputThe value of i is 0
The value of i is 1
The value of i is 2
The value of i is 3
The value of i is 4
Continuing loop
The value of i is 6
The value of i is 7
The value of i is 8
The value of i is 9
Exiting program
Здесь вы видим, что строка The value of i is 5
не появляется в результатах, но цикл продолжает выполнение после этой точки и распечатывает строки для чисел 6-10 перед остановкой цикла.
Вы можете использовать выражение continue
, чтобы избежать использования глубоко вложенного условного кода, или чтобы оптимизировать цикл, устранив часто встречающиеся случаи, которые вы хотите отклонять.
Выражение continue
заставляет программу пропустить определенную часть цикла, а затем продолжить выполнение оставшейся части цикла.
Выражения break
и continue
в Go позволят вам более эффективно использовать циклы for
в программном коде.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!