Логические операторы. Часть 3
Часть раздела Основы путешествия по JavaScript на Coddy — урок 21 из 77.
При работе с логическими выражениями иногда нам нужно упростить или перестроить их.
Если ! (не) стоит перед двумя условиями, соединенными && (и), вы можете разделить это на две отдельные части. && (и) становится || (или), и каждая часть получает свой собственный ! (не):
!(A && B) это то же самое, что и (!A) || (!B)
Например:
// Давайте проверим, что число НЕ (находится в диапазоне от 1 до 10)
let number = 15
// Эти два выражения эквивалентны:
let result1 = !(number >= 1 && number <= 10)
let result2 = !(number >= 1) || !(number <= 10)
console.log(result1) // True
console.log(result2) // TrueВерно и обратное: !(A || B) — это то же самое, что и (!A) && (!B)
Например:
// Проверка, что человек НЕ является (студентом или трудоустроенным)
let is_student = false
let is_employed = false
// Эти два выражения эквивалентны:
let result1 = !(is_student || is_employed)
let result2 = !is_student && !is_employed
console.log(result1) // True
console.log(result2) // TrueЗадание
НовичокВы помогаете зоомагазину создать систему, чтобы определить, могут ли они продать питомца покупателю.
инициализируйте следующие переменные:
has_licenseсо значениемtruehas_spaceсо значениемfalsehas_experienceсо значениемtrue
Напишите следующие логические выражения, чтобы определить, если:
can_sell_regular_pet: Покупателю нужна ЛИБО лицензия, ИЛИ опыт, И у него должно быть местоcan_sell_exotic_pet: Покупателю нужны И лицензия, И опыт, И у него должно быть местоcannot_sell_any_pet: У покупателя НЕТ лицензии И НЕТ опыта, ИЛИ НЕТ места
Шпаргалка
Законы Де Моргана позволяют упрощать логические выражения путем перемещения оператора ! (not):
!(A && B) это то же самое, что и (!A) || (!B)
// НЕ (между 1 и 10)
let result1 = !(number >= 1 && number <= 10)
let result2 = !(number >= 1) || !(number <= 10) // эквивалентно!(A || B) это то же самое, что и (!A) && (!B)
// НЕ (студент или трудоустроен)
let result1 = !(is_student || is_employed)
let result2 = !is_student && !is_employed // эквивалентноПопробуйте сами
// Инициализация переменных
// Расчет условий
let can_sell_regular_pet =
let can_sell_exotic_pet =
let cannot_sell_any_pet =
// Не удаляйте строки ниже
console.log("Can sell regular pet:", can_sell_regular_pet)
console.log("Can sell exotic pet:", can_sell_exotic_pet)
console.log("Cannot sell any pet:", cannot_sell_any_pet)В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 3Приведение типов7Калькулятор разделения счета
Приветственное сообщениеРасчет чаевых и общей суммы2Переменные
ЧислаСтрокиBooleanПравила именованияПустые переменныеИтоги: Инициализация переменныхКонстанты5Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторВложенные конструкции If - ElseОператор Switch3Операторы, часть 1
Арифметические операторыОператор остатка от деленияАрифметические сокращенияОператоры сравненияСтрогое и нестрогое равенствоПовторение: простая математика6Основы ввода-вывода
ВыводВывод с переменнымиПреобразование типов — Часть 1Преобразование типов — Часть 2Повторение — До 120Повторение — True или False