Условия и логические операции

Освоение условных конструкций, операторов сравнения и логических выражений для управления потоком выполнения программы.

Что изучим

  • Операторы сравнения: равенство, неравенство, больше, меньше
  • Условная конструкция if
  • Конструкция if-else для альтернативных сценариев
  • Цепочки else if для множественных условий
  • Логические операторы: И, ИЛИ, НЕ
  • Тернарный оператор и его отсутствие в Go

Основные концепции

Операторы сравнения: возвращают bool значение true или false. Работают с числовыми типами, строками, bool. Сравнивать можно только переменные одного типа — для разных типов требуется явное приведение.

Особенности float: из-за особенностей двоичного представления сравнение через == ненадёжно. Для проверки равенства используйте epsilon — допустимую погрешность вычислений. Проверяйте разницу через math.Abs(a - b) < epsilon.

Конструкция if: выполняет блок кода только если условие истинно. Фигурные скобки обязательны даже для одной строки. Условие без скобок — в отличие от C/Java/JavaScript.

if-else: выполняет один из двух блоков в зависимости от условия. else должно находиться на той же строке, что закрывающая скобка if. Перенос else на новую строку вызовет ошибку компиляции.

else if: проверяет несколько условий последовательно. Выполняется первый истинный блок, остальные пропускаются. Порядок условий важен — начинайте с более специфичных, заканчивайте общими.

Guard clauses: ранний выход из функции при невыполнении условий. Снижает вложенность, улучшает читаемость. Вместо глубокого if-else проверяйте ошибочные случаи и возвращайтесь досрочно.

Логические операторы: && (И) требует истинности обоих операндов,   (ИЛИ) истинен если хотя бы один операнд истинен, ! (НЕ) инвертирует значение. Используют короткое замыкание — второй операнд не вычисляется если результат известен по первому.