Циклы¶
Цикл — это повторение действий: пройти по числам от 1 до 100, обработать
все элементы списка, читать ввод пока пользователь не введёт «выход».
В Go все циклы — это for. Других ключевых слов нет.
Что должен понять¶
- Три формы
for: классическая, while-стиль, for-range. - Как использовать
breakиcontinue. - Чем отличается обход слайса и обход мапы.
- Что порядок обхода мапы случайный.
Классический for¶
Три части: инициализация, условие, шаг. Скобок вокруг — нет.
While-стиль¶
В Go нет while. Просто оставь только условие:
Бесконечный цикл — пустой for:
for-range по слайсу¶
Если индекс не нужен — замени на _:
for-range по мапе¶
ages := map[string]int{"Anna": 25, "Boris": 30, "Clara": 22}
for name, age := range ages {
fmt.Println(name, age)
}
Порядок ключей не определён — каждый запуск может быть разным. Если нужен стабильный порядок, отсортируй ключи отдельно.
break и continue¶
break— выйти из цикла.continue— перейти к следующей итерации.
for i := 1; i <= 10; i++ {
if i%2 == 0 {
continue // пропустить чётные
}
if i > 7 {
break // остановиться
}
fmt.Println(i) // 1 3 5 7
}
Типичные ошибки¶
- Пытаются писать
while (cond)— такого синтаксиса нет. - В for-range забывают
_, и компилятор ругается на неиспользованныйi. - Полагаются на порядок ключей мапы. Не делай так.
Критерии приёмки модуля¶
- Программа печатает числа от 1 до N через классический
for. - Программа суммирует элементы слайса через for-range.
- Программа печатает все пары ключ-значение мапы.
- Программа корректно использует
breakиcontinueхотя бы один раз.
Дальше: Слайсы (часть 1).