💬 Что это вообще такое? Управляющие структуры — это конструкции, которые позволяют управлять ходом выполнения программы. Благодаря им, мы можем сказать компьютеру: «если A, то сделай B», или «выполняй C до тех пор, пока не станет D».
В повседневной жизни ты тоже используешь такую логику:
- Если идёт дождь — берёшь зонт.
- Пока не наступит полночь — празднуешь.
В программировании это реализуется с помощью условий и циклов. Давай разбираться по порядку.
🧭 Условные операторы
Условные операторы позволяют выполнять код только если выполняется некое условие (логическое выражение).
if
x := 10
if x > 5 {
fmt.Println("x больше 5")
}
Можно добавить блок else
, если нужно выполнить что-то другое в противном случае:
if x%2 == 0 {
fmt.Println("x — чётное")
} else {
fmt.Println("x — нечётное")
}
Допустимо объявить переменную прямо внутри if
:
if y := 7; y < 10 {
fmt.Println("y меньше 10")
}
switch
switch
— это способ выбора из нескольких вариантов. Вместо того чтобы писать много if-else
, можно использовать switch
.
day := "среда"
switch day {
case "понедельник":
fmt.Println("Начало недели")
case "пятница":
fmt.Println("Почти выходные")
default:
fmt.Println("Обычный день")
}
switch
автоматически прерывается после первого совпадения —break
писать не нужно.- Можно объединять несколько значений:
switch day {
case "суббота", "воскресенье":
fmt.Println("Выходной!")
}
🔁 Циклы
Циклы позволяют выполнять одни и те же действия многократно. Например, вывести на экран числа от 1 до 10 или проверять ввод, пока пользователь не введёт правильное значение.
В Go есть только один цикл — for
, но он умеет всё.
Стандартный for
for i := 0; i < 5; i++ {
fmt.Println(i)
}
Объяснение:
i := 0
— начальное значениеi < 5
— условие продолженияi++
— шаг (увеличиваемi
на 1)
Как while
x := 5
for x > 0 {
fmt.Println(x)
x--
}
Этот цикл работает, пока x
больше нуля.
Бесконечный цикл
for {
fmt.Println("Бесконечность")
break // Не забудь выйти ;)
}
⏭ Управление потоком
Иногда нужно изменить поведение цикла:
break
— завершает цикл илиswitch
.continue
— пропускает текущую итерацию и переходит к следующей.
for i := 1; i <= 5; i++ {
if i == 3 {
continue // Пропускаем 3
}
fmt.Println(i)
}
Результат:
1
2
4
5
💡 Управляющие конструкции — это каркас любой программы. Умение эффективно использовать их — ключ к читаемому и надёжному коду.
📌 Главное из главы
- Условные операторы (
if
,else
,switch
) позволяют выполнять код в зависимости от условий. - Цикл
for
— универсальный способ повторения кода. - Можно использовать
break
иcontinue
для управления работой цикла. - Эти конструкции позволяют писать гибкие и логичные программы.