Далее на странице...

Когда мы изучали условия if-else, операторы сравнения и равенства и булевы значения, то при этом нам приходилось работать с логикой, учиться ей.
Здесь в этой статье пойдет речь о булевой логике.
По существу булева логика - это отдельная ветвь/отдельное направление компьютерной науки, которая изучает истинные и ложные значения для решения комплексных логических проблем.
В булевой логике используется несколько логических операторов, которые работают с истинными и ложными значениями.
Это очень похоже на арифметические операторы, которые работают с числовыми значениями.
Итак, основные логические операторы – это операторы: И, ИЛИ и НЕ.
Стоит отметить, что булева логика не является спецификацией Javascript. Она верна для всего программирования.
Теперь разберемся, как работают основные логические операторы, и рассмотрим примеры, иллюстрирующие это.
Логический оператор И - Таблица Истинности

Итак, для примера мы имеем две булевы переменные, которые могут быть либо истинны true, либо ложны false.
A: Sarah has a driver's license - У Сары есть водительские права.
B: Sarah has good vision - У Сары хорошее зрение.
Каждое из этих высказываний является условием, которое может быть либо истинным, либо ложным: true или false. Потому что Сара может НЕ иметь водительских прав и НЕ иметь хорошего зрения.
Теперь, используя логический оператор И в контексте A И B, мы можем совместить эти высказывания как булевы переменные. Итак, у Сары есть водительские права И у нее хорошее зрение.
Что будет результатом это операции?
Для этого существует так называемая таблица истинности. Ее вы можете видеть на иллюстрации выше. Здесь мы видим два возможных варианта для каждой из переменных. А само выражение A И B в качестве результата имеет 4 возможных комбинации.
И теперь все что мы делаем заключается в том, чтобы подключить значение наших переменных и получить результат операции логического И из этой таблицы.
Итак, что мы можем видеть в этой таблице: только в том случае, если A и B истинны, то есть принимают значение true, только тогда результатом операции А И В будет также истина true.
И это имеет смысл. В этом есть логика. В конце концов, он называется логический оператор И. Итак, еще раз: что оператор И делает? Он возвращает true только, если оба значения выражения A И B истинны.
Во всех других ситуациях, если одна или каждая из переменных A и B ложны - принимают значение false, результат будет false.
Конечно, это правило распространяется и на большее количество операндов. Переменных может быть больше чем две. Например, три A и B и C. При этом результат будет истинным - true, если каждая из этих переменных истинна. И соответственно если любая из них принимает значение false, то и результат будет ложным.
Все это, конечно, может сбить вас с толку.
Но не стоит волноваться, дальше мы будем работать с примерами, и на практике все прояснится. И со временем не нужна будет таблица истинности.
Двигаемся дальше и переходим к логическому оператору ИЛИ.
Логический оператор ИЛИ

Логический оператор ИЛИ работает иначе.
Рассмотрим наш пример с оператором ИЛИ. Является Сара водителем ИЛИ она хорошо видит? Если немного подумать, то мы можем уже интуитивно сообразить, что в случае с оператором ИЛИ мы получим истину true, если хотя бы одна из переменных будет принимать значение true. И таблица истинности для оператора ИЛИ подтверждает это.
Итак, в отличии от оператора И оператор ИЛИ работает так, что даже если одна из переменных это false результат будет все равно истинным. Другими словами, если любое из значений A или B true, тогда оператор ИЛИ также становиться истинным true. Вот почему этот оператор называется ИЛИ.
И если у вас есть несколько/более двух переменных достаточно, чтобы одна из них была true, чтобы сделать всю операцию истиной true.
Все это будет иметь больший смысл, как только мы начнем изучать это на практике.
Но у нас еще есть оператор НЕ.
Оператор НЕ
Понять, как работает оператор НЕ намного проще. Потому что он не объединяет несколько значений.
Оператор НЕ действует только на одно логическое значение и по существу просто переворачивает/инвертирует его (меняет значение на противоположное).
Так если А - true, то оно станет false.
Если же А - это false, то НЕ А - это true. Все очень просто.
Итак, мы поговорили о том, как работают три основных логических оператора. Но, конечно же, лучшим способом понять это является практика.
Примеры работы с операторами И ИЛИ и НЕ
Есть переменная age = 16 и есть две логические переменные:
A: Age is greater or equal 20 (возраст больше или равен 20) и
B: Age is less than 30 (возраст менее 30 лет)
Давайте определим их значения
Итак, если age = 16, то этот нельзя сказать, что этот возраст больше или равен 20, поэтому переменная A это false.
Но можно сказать, что 16 - это возраст менее 30 лет, поэтому переменная B это true.
A --> false
B --> true
Теперь давайте работать с переменными A и B, используя логические операторы.
Работа с оператором НЕ
A --> false - A это false, НО
!A --> true - НЕ A это true.
Для переменной B наоборот:
B --> true - B это true, НО
!B --> false - НЕ B это false.
Итак, все, что делает оператор НЕ - это инвертирует (меняет на противоположное) логическое значение переменной.
Работа с оператором И
Итак, мы уже знаем, что A это false, а B это true.
Каков результат выражения A И B?
Смотрим на таблицу истинности для оператора И, из которой легко заключить, что в результате это выражение ложно - false.
A --> false И B --> true = false
Напомним еще раз, как работает логический оператор И: выражение может быть истинным true только в том случае, если все его составляющие истинны true. Если же хотя бы одна из логических переменных принимает значение false, то и все выражение будет ложным false.
Работа с оператором ИЛИ
Каков результат выражения A ИЛИ B?
Смотрим на таблицу истинности для оператора ИЛИ, из которой следует, что это выражение истинно - true.
A --> false ИЛИ B --> true = true
Напомним, как работает логический оператор ИЛИ: выражение будет истинным всегда, когда хотя бы одна из логических переменных принимает значение true. И выражение будет ложным false только тогда, когда все его составляющие ложны false.
Работа с операторами И и НЕ
Добавим в логическое выражение для оператора И оператор НЕ:
НЕ A И B
!A --> true И B --> true = true
Работа с операторами ИЛИ и НЕ
A ИЛИ НЕ B
Здесь нужно отметить следующее: оператор НЕ имеет приоритет перед операторами И и ИЛИ. То есть сначала конвертируется значение, с которым работает оператор НЕ, и только после этого прорабатывается комбинация с использованием операторов И или ИЛИ.
Итак, в выражении A ИЛИ НЕ B сначала выполняется оператор НЕ, и только потом ИЛИ.
A --> false ИЛИ !B --> false = false
На этом, пожалуй, все. Надеемся, что этот материал имел смысл для Вас, и в следующей статье мы будем использовать эти операторы в коде. И тогда этот материал станет более ясным для Вас. И тогда вы вероятно уже не будете нуждаться в таблицах истинности. Потому что это станет вполне понятным/интуитивно понятным: как в действительности работают операторы И и ИЛИ.