Конспект 3 Golang (Go) : Циклы - Switch
8. Цикл и его интерпретации
В языке Go есть только один вид цикла - это цикл (for). В нём нет привычных для других языков операторов (while) или (do-while), но он с легкостью заменяет их все.
1. Классический цикл
Классический цикл со счетчиком используется, когда код нужно повторить фиксированное кол-во раз. В круглых скобках () условие не требуется.
- i := 0 - Начальное значение
- i<5 - Условие (цикл работает пока оно верно)
- i++ - Шаг (увеличение счетчика на 1)
- fmt.Println(i) - Выводит текущее значение i
2. Аналог цикла (While) (пока условие истинно)
Если оставить только условие, то цикл будет работать, пока оно не станет false.
- count := 1 - Начальное значение переменной count
- count <= 3 - Условие (цикл выполняется, пока count меньше или равен 3)
- fmt.Println("Считаем:", count) - Выводит текущее значение count
- count++ - Увеличивает count на 1 после каждой итерации
3. Бесконечный цикл
Используется, например, в серверах, которые должны работать постоянно.
4. Цикл (for range) для перебора коллекций (это те самые массивы, срезы и карты)
Самый частый сценарий в Go - обход массивов (arraus), срезов (slices), строк или карт (maps).
- letters := []string{"a", "b", "c"} - Создаётся срез строк с тремя элементами
- range letters - Последовательно перебирает все элементы среза
- index - Получает индекс текущего элемента (0, 1, 2)
- value - Получает значение текущего элемента ("a", "b", "c")
- fmt.Println(index, value) - Выводит индекс и значение элемента
Если индекс не нужен, его можно заменить на пустой идентификатор (нижнее подчеркивание):
Управление циклом
В Go есть несколько операторов для управления циклом
- break - Полностью завершает цикл.
- continue - Пропускает текущую итерацию.
- return - Завершает функцию вместе с циклом.
Примеры:
break - выйти из цикла при выполнении условия
- i == 3 - условие выхода из цикла
- break - немедленно завершает цикл при выполнении условия
Результат:
Результат без break и условия:
continue - Пропускает итерацию
- continue - пропускает оставшийся код текущей итерации и цикл переходит к следующему значению.
Результат:
Результат без continue:
return - Завершает функцию вместе с циклом
- return завершает и цикл и всю функцию main.
Результат:
Результат без return:
9. Конструкция Switch
Конструкция switch в Go - это более удобная и читаемая замена множественным проверкам через if-else.
Главная особенность Go заключается в том, что после выполнения совпавшего case оператор switch автоматически завершается. Поэтому обычно не нужно писать break в конце каждого блока.
- switch - начинает проверку.
- case - возможный вариант значения.
- default - запасной вариант, если ничего не подошло.
1. Классический Switch
Проверяет конкретную переменную на совпадение с разными значениями.
- switch color - Go начинает сравнивать значение переменной color с каждым case.
- case "red" - Выполнится, если color равно "red".
- case "yellow" - Выполнится, если color равно "yellow".
- case "green" - Выполнится, если color равно "green".
- default - Выполнится, если ни один case не подошёл.
2. Несколько значений в одном case
Принцип тот же, но с несколькими вариантами через запятую, если для них нужен один и тот же код.
3. switch без выражения (вместо длинных if-else)
Если не указывать переменную после слова switch, конструкция будет вести себя как цепочка if-else. В case можно писать любые логические условия.
4. Ключевое слово fallthrough
Используется, чтобы после выполнения текущего case программа провалилась в следующий, даже если его условие неверно.
Тут стоит объяснить
fallthrough принудительно передаёт выполнение следующему case, не проверяя его условие.
пока так)
следующий пост по конструкциям (массивы, срезы, карты).