Оператор continue
Оператор continue используется внутри циклов для пропуска
оставшейся части текущей итерации и перехода к следующей итерации.
Он применяется только внутри циклов for и позволяет управлять
ходом выполнения, пропуская определенные шаги итерации при выполнении
заданного условия.
Синтаксис
continue
Оператор continue не принимает аргументов и записывается
как отдельная инструкция. После его выполнения управление
переходит к проверке условия цикла для следующей итерации.
Пример
Давайте выведем числа от 1 до 5, пропуская четные числа:
package main
import "fmt"
func main() {
for i := 1; i <= 5; i++ {
if i%2 == 0 {
continue
}
fmt.Println(i)
}
}
Результат выполнения кода:
1
3
5
В этом примере при i равном 2 и 4 срабатывает условие
continue, и вывод числа пропускается, переходя
к следующей итерации.
Пример
Пропустим итерации в цикле по слайсу строк, если элемент содержит подстроку "bc":
package main
import (
"fmt"
"strings"
)
func main() {
items := []string{"abc", "bcd", "cde", "def"}
for _, item := range items {
if strings.Contains(item, "bc") {
continue
}
fmt.Println(item)
}
}
Результат выполнения кода:
cde
def
Здесь элементы "abc" и "bcd" содержат подстроку "bc",
поэтому для них срабатывает continue, и они не выводятся.
Пример
Использование continue во вложенных циклах. В этом случае
пропускается итерация только внутреннего цикла:
package main
import "fmt"
func main() {
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
if i == j {
continue
}
fmt.Printf("(%d, %d) ", i, j)
}
fmt.Println()
}
}
Результат выполнения кода:
(1, 2) (1, 3)
(2, 1) (2, 3)
(3, 1) (3, 2)
В каждой строке пропускается пара, где i == j,
благодаря чему выводятся только комбинации с разными числами.