golang зациклить функцию

Пользователь

от newell , в категории: Общие вопросы , 4 года назад

Ребят, подскажите, пожалуйста, какие в Golang’е существуют циклы? И как их правильно использовать? Сам в программировании большой новичок, так что, надеюсь, вы мне сможете помочь.


Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

6 ответов

Пользователь

от bradly.ledner , 4 года назад

Оператор for используется для многократного выполнения блока кода.


Трехкомпонентный цикл:

Эта версия for цикла в Go работает так же, как в C или Java.

1
2
3
4
5
sum := 0
for i := 1; i < 5; i++ {
   sum += i
}
fmt.Println(sum) // 10 (1+2+3+4)

1. Выполняется инициализирующее утверждение, i := 1

2. Вычисляется условие, i < 5

Если true, тело цикла выполняется,

в противном случае цикл завершен.

3. Выполняется постутверждение i++

4. Вернуться к шагу 2.

Область видимости i ограничена циклом.

Пользователь

от soledad , 4 года назад

Если вы пропустите инициализирующее и постутверждение, вы получите цикл while.

1
2
3
4
5
n := 1
for n < 5 {
   n *= 2
}
fmt.Println(n) // 8 (1*2*2*2)

1. Вычисляется условие, i < 5

Если true, тело цикла выполняется,

в противном случае цикл завершен.

2. Вернуться к шагу 1.


Пользователь

от bailee , 4 года назад

Бесконечный цикл

Если вы пропустите условие, вы получите бесконечный цикл.

1
2
3
4
5
sum := 0
for {
   sum++ // повторяется бесконечно
}
fmt.Println(sum) // никогда не будет выполнено

Пользователь

от tessie_jacobs , 4 года назад

For-each range цикл

Прохождение в цикле по элементам в срезах, массивах, картах, каналах или строках часто лучше сделать с помощью range цикла.

1
2
3
4
strings := []string{"hello", "world"}
for i, s := range strings {
   fmt.Println(i, s)
}

Вывод:

0 hello

1 world


Пользователь

от anastacio.hane , 4 года назад

Выход из цикла

Ключевые слова break и continue работают так же, как и в C и Java.

 

1
2
3
4
5
6
7
8
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 утверждение.


Пользователь

от newell , 4 года назад

Спасибо, ребят, очень подробно всё объяснили. Буду сейчас пробовать все виды из тех, которые вы мне представили. Надеюсь, я не запутаюсь со всем этим новым багажом знаний)).