tariel.ge › Полезное: бесплатные книги › Логические элементы: от электроники до…Бесплатно · автор Тариел Бежанидзе
← Учебник по логическим элементам ЛИСТ 18БЛОК 4 — ЛОГИКА В ПРОГРАММИРОВАНИИРЕВ. 1
Глава 18 · Логика в программировании

Условные конструкции if/else как применение логики

Сама конструкция if — концептуально то же самое, что демультиплексор из главы 14: направляет ход выполнения программы по одному из путей в зависимости от значения условия.

Базовая структура if/else/else if

if condition_1:
  # путь А
elif condition_2:
  # путь Б
else:
  # путь В

Синтаксис отличается между языками в деталях (фигурные скобки в C-подобных языках, отступы в Python), но логика идентична — маршрутизация выполнения по ровно одному из предусмотренных путей.

Вложенные условия против объединённых булевых выражений

Одну и ту же логику можно выразить вложенными if внутри if, либо одним условием, объединённым через И/ИЛИ (глава 16). Объединённое условие часто читается компактнее для простых случаев, вложенность иногда яснее показывает иерархию логики для более сложных, многоуровневых решений — выбор между ними в первую очередь про читаемость кода, а не про правильность.

Тернарный (условный) оператor — компактная запись

// JavaScript
const результат = условие ? значение_если_истина : значение_если_ложь;

Компактная однострочная запись простого if/else, доступная во многих языках — уместна именно для простых случаев, где полноценный многострочный if/else избыточен.

Switch/match — альтернатива длинной цепочке if-elif

Конструкция switch (или match в некоторых современных языках) — альтернативный синтаксис для выбора одного из многих путей по значению переменной, концептуально близкий к декодеру из главы 14: одно входное значение однозначно определяет, какая именно ветвь кода выполнится.

Забегая вперёд: инверсия условия иногда яснее

Иногда условие читается заметно понятнее, если инвертировать его и поменять местами ветки if/else, чем оставить как есть с более сложным исходным условием — практический приём, подробно раскрываемый в следующей главе через законы Де Моргана.

Частая ошибка новичка 1: избыточное сравнение с true

Не нужно сравнивать булево значение с true явно

if x == true работает, но избыточно и менее читаемо, чем просто if x — переменная x уже булева, дополнительное сравнение с true ничего не добавляет к смыслу, только удлиняет код.

Частая ошибка новичка 2: путаница присваивания и сравнения

= против == в C-подобных языках

В языках вроде C, JavaScript, PHP случайное написание if (x = 5) вместо if (x == 5) — реальный, распространённый источник ошибок: одиночный знак равенства присваивает значение 5 переменной x (и попутно само выражение присваивания обычно расценивается как истинное), а не сравнивает её с числом 5. Опечатка в один символ, способная привести к трудноуловимой ошибке в поведении программы.

Что дальше

Следующая глава — законы Де Моргана в контексте кода: конкретный практический приём упрощения запутанных условий, обещанный чуть выше в этой главе.

Глава18 — Условные конструкции if/else
Блок4 — Логика в программировании
Далее19 — Законы Де Моргана в коде
СтатусГотово · рев. 1
Предыдущая глава ← 17 · Побитовые операции Следующая глава 19 · Законы Де Моргана в коде →

Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.