Метод 1: используйте метку
Один из способов продолжить родительский цикл в Go — использовать метку. Вы можете назначить метку родительскому циклу, а затем использовать оператор continueс меткой, чтобы продолжить цикл. Вот пример:
package main
import "fmt"
func main() {
OuterLoop:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if j == 1 {
continue OuterLoop
}
fmt.Printf("i: %d, j: %d\n", i, j)
}
}
}
В этом примере метка OuterLoopприсвоена родительскому циклу. Когда jравно 1, выполняется оператор continue OuterLoop, который пропускает остальную часть внутреннего цикла и переходит к следующей итерации родительского цикла.
Метод 2: используйте переменную-флаг.
Другой подход заключается в использовании переменной-флага, которая указывает, следует ли продолжать родительский цикл. Вы можете установить для флага значение true, если хотите продолжить родительский цикл и проверить значение флага внутри цикла. Вот пример:
package main
import "fmt"
func main() {
continueParentLoop := false
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if j == 1 {
continueParentLoop = true
break
}
fmt.Printf("i: %d, j: %d\n", i, j)
}
if continueParentLoop {
continueParentLoop = false
continue
}
}
}
В этом примере флаг continueParentLoopизначально установлен в значение false. Когда jравно 1, мы устанавливаем флаг в значение true и выходим из внутреннего цикла. После внутреннего цикла мы проверяем значение флага. Если это правда, мы сбрасываем флаг и используем оператор continue, чтобы продолжить следующую итерацию родительского цикла.
Метод 3: использование функции
Вы также можете инкапсулировать родительский цикл в функцию и использовать оператор returnдля продолжения цикла. Вот пример:
package main
import "fmt"
func parentLoop() {
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if j == 1 {
return
}
fmt.Printf("i: %d, j: %d\n", i, j)
}
}
}
func main() {
parentLoop()
}
В этом примере функция parentLoopсодержит родительский цикл. Когда jравно 1, мы используем оператор returnдля выхода из функции и перехода к следующей итерации родительского цикла.
Это три метода, которые вы можете использовать для продолжения родительского цикла в Go. Каждый метод имеет свои преимущества и может оказаться более подходящим в зависимости от конкретных требований вашего кода.