Приоритет логических операторов в C#
У логических операторов свой приоритет: они выполняются в фиксированном порядке, а не просто подряд слева направо.
Сначала выполняется отрицание !, затем связка
&&, затем связка ||. Этот порядок
важен, когда в одной строке стоят несколько знаков.
В следующем выражении сначала собирается правая часть, связка И. Ложь и ложь дают ложь. Эта ложь стоит справа от истины, и связка ИЛИ дает истину. Запишем результат в переменную и выведем его:
bool flag = true || false && false;
Console.WriteLine(flag);
Отрицание считается раньше связки И. Сначала ложь становится истиной. Затем эта истина сталкивается с ложью справа, и результат - ложь. Выведем его:
bool flag = !false && false;
Console.WriteLine(flag);
Выведите результат следующего выражения:
true && false || true
Выведите результат следующего выражения:
false || !false