Оператор for используется для многократного выполнения блока кода.
Трехкомпонентная цикл
Эта версия for цикла в Go работает так же, как в C или Java.
sum := 0
for i := 1; i < 5; i++ {
sum += i
}
fmt.Println(sum) // 10 (1+2+3+4)
- Выполняется инициализирующее утверждение, i := 1
- Вычисляется условие, i < 5
- Если true, тело цикла выполняется,
- в противном случае цикл завершен.
- Выполняется постутверждение i++
- Вернуться к шагу 2.
Область видимости i ограничена циклом.
While цикл
Если вы пропустите инициализирующее и постутверждение, вы получите цикл while.
n := 1
for n < 5 {
n *= 2
}
fmt.Println(n) // 8 (1*2*2*2)
- Вычисляется условие, i < 5
- Если true, тело цикла выполняется,
- в противном случае цикл завершен.
- Вернуться к шагу 1.
Бесконечный цикл
Если вы пропустите условие, вы получите бесконечный цикл.
sum := 0
for {
sum++ // повторяется бесконечно
}
fmt.Println(sum) // никогда не будет выполнено
For-each range цикл
Прохождение в цикле по элементам в срезах, массивах, картах, каналах или строках часто лучше сделать с помощью range цикла.
strings := []string{"hello", "world"}
for i, s := range strings {
fmt.Println(i, s)
}
Вывод:
0 hello
1 world
Выход из цикла
Ключевые слова break и continue работают так же, как и в C и Java.
sum := 0
for i := 1; i < 5; i++ {
if i%2 != 0 { // пропустить нечетные числа
continue
}
sum += i
}
fmt.Println(sum) // 6 (2+4)
- Оператор continue начинает следующую итерацию самого внутреннего цикла for, выполнив свое постутверждение (i++).
- Оператор break покидает самое внутреннее for, switch, select утверждение.
Читайте также:
Комментариев нет:
Отправить комментарий