💬 Что это вообще такое? Управляющие структуры — это конструкции, которые позволяют управлять ходом выполнения программы. Благодаря им, мы можем сказать компьютеру: «если 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 для управления работой цикла.
  • Эти конструкции позволяют писать гибкие и логичные программы.