Как вы возвращаете логическое значение, сравнивая три переменные в одной строке? - PullRequest
0 голосов
/ 08 мая 2018

Я видел людей, которые делали оператор if и else только в 1 строке, используя

return var1 != null ? var2 : 0;.

Это кажется более компактным и быстрым для ввода, чем создание оператора if, затем еще несколько строк и так далее ...

Выражение return выше является примером, я не могу воссоздать нечто подобное, так как не знаю синтаксиса использования операторов if and else в строках return.


Текущая ситуация:

Есть 3 целых числа.

Я хочу сравнить , если var 1 больше, чем var 2 , а также ( && ) , если (var 1 + var 3) больше, чем var 2 . Если эти условия выполняются, тогда оператор return должен возвращать false, иначе true.

Попытка:

return var1 > var2 && (var1 + var3) > var2 ? false : true;

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

Если var1 больше var2, это условие:

var1 > var2

Если var1 + var3 больше var2, это условие:

var1 + var3 > var2

Вернуть false, если оба эти условия совпадают, иначе true:

return !(var1 > var2 && var1 + var3 > var2);

Оператор ?: не требуется.

0 голосов
/ 08 мая 2018

Не

return !(var1 > var2 && (var1 + var3) > var2);

достаточно?

Используя булеву алгебру, мы можем упростить оператор !: !(a and b) = !a or !b

return var1 <= var2 || (var 1 + var 3) <= var2;
0 голосов
/ 08 мая 2018

Вы можете ввести:

return !(var1 > var2 && (var1 + var3) > var2);
...