Отрицание

Наряду с конъюнкцией (И) и дизъюнкцией (ИЛИ), часто используется операция «отрицание». Отрицание меняет логическое значение на противоположное.

В программировании ему соответствует унарный оператор !.

Если есть функция, проверяющая чётность числа, то с помощью отрицания можно выполнить проверку нечётности:

const isEven = number => number % 2 === 0;

isEven(10);  // true
!isEven(10); // false

То есть мы просто добавили ! слева от вызова функции и получили обратное действие.

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

А что если написать так !!isEven(10)? Внезапно, но код сработает. В логике двойное отрицание подобно отсутствию отрицания вообще.

isEven(10);   // true
!isEven(10);  // false
!!isEven(10); // true

Задание

Реализуйте функцию isNotLannisterSoldier, которая проверяет, что солдат — не Ланнистер. Функция принимает на вход 2 аргумента:

  1. Цвет доспехов (строка). Например, строку red, если доспехи красные.
  2. Изобажение на щите. Например, строку lion, если щит с изображением льва. Если щита нет, то будет передан null.

Условия распознавания Ланнистера описаны в прошлом уроке.

Вам доступна уже готовая функция isLannisterSoldier. Воспользуйтесь ей, чтобы не писать все логические условия заново.

Примеры вызова:

isNotLannisterSoldier('red', 'lion'); // false
isNotLannisterSoldier('blue', null);  // true

Советы


Нашли ошибку? Есть что добавить? Пулреквесты приветствуютсяhttps://github.com/hexlet-basics

Упражнение доступно только авторизованным пользователям.

Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.