Назад к урокам

Условные операторы в Go

Урок объясняет работу условных операторов if..else в Go: создание условий, цепочки else if, использование логических операторов, инициализацию в условии и приём раннего выхода (early return).

Начинающий8 min

🔀 if..else в Go

В этом уроке мы разберём оператор if..else, способы управления потоком выполнения, использование логических операторов, инициализацию переменных внутри условия и технику раннего выхода (early return).


📌 Что такое Flow Control?

Обычно программа выполняется сверху вниз, строка за строкой. Flow control позволяет изменить порядок выполнения и выполнять определённые блоки кода только при выполнении условий.


🔧 Базовый синтаксис if..else

if condition {
    // выполнить действие
}

if condition {
    // выполнить действие
} else {
    // выполнить альтернативное действие
}

🧪 Пример if..else

if userName != "" {
    // обработать имя пользователя
} else {
    // вывести сообщение об ошибке
}

Если альтернативное действие не требуется:

if userName != "" {
    // обработать имя пользователя
}

🔁 Цепочка условий: if..else if

if age >= 21 {
    // вход разрешён
} else if parentalApproval {
    // вход разрешён при согласии родителей
} else {
    // вход запрещён
}

🧠 Использование логических операторов

Условия можно объединять с помощью операторов &&, || и !:

if hasTicket && ticketValid {
    // разрешить вход
}

if funds > cost && accountActive {
    // разрешить покупку
}

if usingDebitCard || usingCreditCard {
    // выбрать экран карты
}

if !quizComplete {
    // вывод предупреждения
}

🧩 Использование функций в условиях

В условия можно помещать результаты работы функций:

if temperature("freezer") > 0 {
    // вывести предупреждение
}

if temp("freezer") > preferredTemp("freezer") {
    // вывести предупреждение
}

🛠 Инициализация внутри условия (Statement Initialization)

В Go можно объявить переменную прямо внутри условия if. Она будет доступна только в пределах блока if/else:

if i := 5; i < 10 {
    // используем i
} else {
    // используем i по-другому
}

Пример с функцией:

if rank := getUserRank(); rank == "admin" {
    // код администратора
} else if rank == "manager" {
    // код менеджера
} else {
    // сообщение об ошибке
}

⚡ Early Return (Ранний выход)

Техника раннего выхода улучшает читаемость и исключает лишнюю вложенность:

token, err := getSession("alice")
if err != nil {
    return
}

cart, err := getCart(token)
if err != nil {
    return
}

// теперь можно обрабатывать корзину

Early return помогает: - завершить работу функции сразу при ошибке, - сократить вложенные блоки, - улучшить понимание и поддержку кода.


📘 Итоги

  • Flow control позволяет управлять порядком выполнения.
  • if..else - основной инструмент для ветвления.
  • Можно использовать логические операторы для сложных условий.
  • Условия могут использовать возвращаемые функциями значения.
  • Statement initialization создаёт переменные внутри условного блока.
  • else if позволяет проверять несколько сценариев.
  • Early return делает код проще и эффективнее.
Условные операторы в Go | WebSchool