C#: Отрицание
Наряду с конъюнкцией (И) и дизъюнкцией (ИЛИ), часто используется операция «отрицание». Отрицание меняет логическое значение на противоположное. В программировании ему соответствует оператор !.
Если есть метод, проверяющий чётность числа, то с помощью отрицания можно выполнить проверку нечётности:
public static bool IsEven(int number)
{
return number % 2 == 0;
}
App.IsEven(10); // true
!App.IsEven(10); // falseТо есть мы просто добавили ! слева от вызова метода и получили обратное действие. Отрицание можно применять не только к вызову метода, но и к целому выражению:
// x не равен 5 и не равен 3
!(x == 5 || x == 3)
// Это же выражение можно записать по другому
x != 5 && x != 3Отрицание — мощный инструмент, который позволяет лаконично выражать задуманные правила в коде без необходимости писать новые методы.
Задание
Реализуйте метод IsNotLannisterSoldier() в классе App, который проверяет, что солдат — не Ланнистер. Функция принимает на вход 2 аргумента:
- Цвет доспехов (строка). Например, строку
"red", если доспехи красные. - Изображение на щите. Например, строку
"lion", если щит с изображением льва. Если щита нет, то будет переданnull.
Вам доступна уже готовая функция IsLannisterSoldier(). Воспользуйтесь ей, чтобы не писать все логические условия заново.
Условия распознавания Ланнистера описаны в прошлом уроке.
Примеры вызова:
App.IsNotLannisterSoldier('red', 'lion'); // false
App.IsNotLannisterSoldier('blue', null); // trueПолезное
C#: Отрицание
Наряду с конъюнкцией (И) и дизъюнкцией (ИЛИ), часто используется операция «отрицание». Отрицание меняет логическое значение на противоположное. В программировании ему соответствует оператор !.
Если есть метод, проверяющий чётность числа, то с помощью отрицания можно выполнить проверку нечётности:
public static bool IsEven(int number)
{
return number % 2 == 0;
}
App.IsEven(10); // true
!App.IsEven(10); // falseТо есть мы просто добавили ! слева от вызова метода и получили обратное действие. Отрицание можно применять не только к вызову метода, но и к целому выражению:
// x не равен 5 и не равен 3
!(x == 5 || x == 3)
// Это же выражение можно записать по другому
x != 5 && x != 3Отрицание — мощный инструмент, который позволяет лаконично выражать задуманные правила в коде без необходимости писать новые методы.
Задание
Реализуйте метод IsNotLannisterSoldier() в классе App, который проверяет, что солдат — не Ланнистер. Функция принимает на вход 2 аргумента:
- Цвет доспехов (строка). Например, строку
"red", если доспехи красные. - Изображение на щите. Например, строку
"lion", если щит с изображением льва. Если щита нет, то будет переданnull.
Вам доступна уже готовая функция IsLannisterSoldier(). Воспользуйтесь ей, чтобы не писать все логические условия заново.
Условия распознавания Ланнистера описаны в прошлом уроке.
Примеры вызова:
App.IsNotLannisterSoldier('red', 'lion'); // false
App.IsNotLannisterSoldier('blue', null); // trueПолезное
Ваше упражнение проверяется по этим тестам
#load "/src/Init.csx"
#load "Exercise.csx"
;
using PowerAssert;
var actual1 = App.IsNotLannisterSoldier("blue", null);
PAssert.IsTrue(() => actual1 == true);
var actual2 = App.IsNotLannisterSoldier("red", null);
PAssert.IsTrue(() => actual2 == false);
var actual3 = App.IsNotLannisterSoldier("red", "man");
PAssert.IsTrue(() => actual3 == true);
var actual4 = App.IsNotLannisterSoldier("red", "lion");
PAssert.IsTrue(() => actual4 == false);
var actual5 = App.IsNotLannisterSoldier("blue", "lion");
PAssert.IsTrue(() => actual5 == false);Решение учителя откроется через:
20:00
