Объясните строку кода в c # return n! = 0 && n % 2 == 0 ? - n: n; Что такое n! и? - n: n;

+441 голосов
1.9m просмотров

Объясните строку кода в c # return n! = 0 && n % 2 == 0 ? - n: n; Что такое n! и? - n: n;


Информатика (77 баллов) | 1.9m просмотров
Дан 1 ответ
+197 голосов
Правильный ответ

return n != 0 && n % 2 == 0 ? -n : n;

Оператор != - оператор равенства, возвращающий истину, если операнды не равны, и ложь иначе. n != 0 - значение условия "n не равно 0"

Оператор ?: - тернарный оператор, его запись имеет вид _условие_ ? _возвращаемое_значение_при_истинности_условия_ : _возвращаемое_значение_при_ложности_условия_ .

Операторы, использованные в выражении, по убыванию приоритета (операторы с равным приоритетом в одной строке):

унарный -

%

==      !=

&&

?:

А тогда return n != 0 && n % 2 == 0 ? -n : n; эквивалентно return ((n != 0) && ((n % 2) == 0)) ? (-n) : n;

Если n не равно 0 и дает остаток 0 при делении на 2 (т.е. четно), возвращается значение -n, иначе возвращается n.

(11.3k баллов)