Прямой мост от блоков 1–3: та же самая логика теперь существует не как напряжение в проводе, а как чистое значение в памяти — без единого вольта, но с той же самой сутью.
True (истина) и false (ложь) — два возможных значения булева типа, напрямую соответствующие 1 и 0 из таблиц истинности блока 1 (глава 02). Разница лишь в том, что здесь это абстрактное значение переменной, а не физическое напряжение на выводе микросхемы.
| Язык | Запись |
|---|---|
| Python | True / False (с заглавной буквы) |
| JavaScript, Java, C# | true / false (со строчной) |
| PHP | true / false (регистр не имеет значения) |
| C | исторически отдельного булева типа не было — использовалось целое число (0 = ложь, любое ненулевое = истина); современный стандарт добавил тип bool через заголовочный файл stdbool.h |
Многие языки допускают использование значений, формально не являющихся булевыми, прямо в условии if — они автоматически интерпретируются как истина или ложь. Типичные "ложные" (falsy) значения: 0, пустая строка "", null/None, пустой список/массив, undefined. Всё остальное обычно интерпретируется как "истинное" (truthy). Это удобно на практике, но часто путает начинающих, ожидающих строго только true/false в условии.
if имя_списка: — сработает как истина, если список не пуст, и как ложь, если список пустой, без явного сравнения его длины с нулём.
if (имя_переменной) — сработает как ложь, если переменная равна 0, пустой строке, null, undefined или NaN, и как истина практически для всех остальных значений, включая пустой объект {} (в отличие от пустого массива в некоторых других языках — здесь стоит быть внимательным к конкретным правилам именно JavaScript).
На самом низком аппаратном уровне (блоки 2–3 этой книги) истина и ложь — это буквально высокий и низкий уровень напряжения. Булев тип данных в коде — абстракция, надстроенная поверх этой физической реальности языком программирования и операционной системой, но сама концепция полностью идентична — только форма представления меняется от вольт к абстрактному значению переменной.
Следующая глава — логические операторы AND/OR/NOT в реальном коде разных языков: та же логика из блока 1, но уже в виде конкретного синтаксиса, который реально пишешь каждый день.
Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.