#java #boolean #boolean-logic
#java #логическое #логическая логика
Вопрос:
Учитывая две логические переменные x и y, оператор должен быть таким, чтобы
boolean getResult(boolean x, boolean y) {
return x op y;
}
следующие утверждения проходят
assertEquals(getResult(true, true), true);
assertEquals(getResult(false, false), true);
assertEquals(getResult(true, false), false);
assertEquals(getResult(false, true), false);
Есть ли какой-либо оператор для этого?
Редактировать.
Извините, я пропустил упоминание оператора, отличного от проверки равенства. Я ищу какую-то операцию, которая может дать комбинированный результат, подобный тому, который мы имеем в общих логических элементах. Я просто хочу знать, возможно ли это или нет. Если возможно, какова операция.
Комментарии:
1. Я в замешательстве, вы хотите, чтобы он возвращал true или false случайным образом?
2. @Luke это совсем не случайно. Возвращает только
true
в том случае, если оба параметра одинаковы, иfalse
если они не совпадают. Полностью детерминированный.3. ДА. Я думаю, что я пропустил слова, отличные от проверки равенства. Какая-то операция, которая может дать комбинированный результат, подобный тому, который мы имеем в общих логических элементах.
Ответ №1:
Есть ли какой-либо оператор для этого?
Да, оператор для этого может быть ==
.
Проверьте объяснение, приведенное ниже:
true == true => true
false == false => true
true == false => false
false == true => false
ДЕМОНСТРАЦИЯ:
public class Main {
public static void main(String[] args) {
// Test
System.out.println(getResult(true, true));
System.out.println(getResult(false, false));
System.out.println(getResult(true, false));
System.out.println(getResult(false, true));
}
static boolean getResult(boolean x, boolean y) {
return x == y;
}
}
Вывод:
true
true
false
false
В качестве альтернативы, вы можете получить тот же результат, отменив bitwise exclusive OR
операцию, как показано ниже:
public class Main {
public static void main(String[] args) {
// Test
System.out.println(getResult(true, true));
System.out.println(getResult(false, false));
System.out.println(getResult(true, false));
System.out.println(getResult(false, true));
}
static boolean getResult(boolean x, boolean y) {
return !(x ^ y);
}
}
Вывод:
true
true
false
false
Комментарии:
1. извините, но я отредактировал сообщение, чтобы включить недостающую деталь.
2. @xploreraj — Я добавил альтернативный способ получить тот же результат.
Ответ №2:
Вам просто нужно проверить, равны ли два значения.
boolean getResult(boolean x, boolean y) {
return x === y;
}
Комментарии:
1.извините, но я отредактировал сообщение, чтобы включить недостающую деталь.
2. хорошо 🙂 Вы можете сделать это, используя альтернативный способ, упомянутый в ответе @Arvind