вторник, 25 февраля 2020 г.

Пять базовых паттернов использования for циклов

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

Трехкомпонентная цикл

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

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 ограничена циклом.

While цикл

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

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

  1. Вычисляется условие, i < 5
    • Если true, тело цикла выполняется,
    • в противном случае цикл завершен.
  2. Вернуться к шагу 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 утверждение.

Читайте также:


Комментариев нет:

Отправить комментарий