Size: a a a

2019 October 17

MC

Mishel Crouf in CODE BLOG / C#
а теперь на основе этого объясни мне, почему так
источник

MC

Mishel Crouf in CODE BLOG / C#
левый операнд 0, правый 1
источник

MC

Mishel Crouf in CODE BLOG / C#
используя | или || в обоих случаях должно выдать true
источник

MC

Mishel Crouf in CODE BLOG / C#
но в одном он выдает false, а в другом true
источник

MC

Mishel Crouf in CODE BLOG / C#
ну и?
источник

MC

Mishel Crouf in CODE BLOG / C#
где там об этом написано?
источник

PE

Pavel Efanov in CODE BLOG / C#
Mishel Crouf
где там об этом написано?
Первая ссылка, первый ответ -
"если одно условие не совпадает то второе условие не проверяется тем самым уменьшая употребительность программы."
источник

MC

Mishel Crouf in CODE BLOG / C#
Оператор логического ИЛИ |
Оператор | вычисляет логическое ИЛИ для всех своих операндов. Результат операции x | y принимает значение true, если хотя бы один из операторов x или y имеет значение true. В противном случае результат будет false.
Оператор | вычисляет оба операнда, даже если левый операнд имеет значение true и результат должен принять значение true, независимо от значения правого операнда.
источник

MC

Mishel Crouf in CODE BLOG / C#
Условный оператор логического ИЛИ ||
Условный оператор логического ИЛИ || (оператор короткого замыкания) вычисляет логическое ИЛИ для своих операндов. Результат операции x || y принимает значение true, если хотя бы один из операторов x или y имеет значение true. В противном случае результат будет false. Если x имеет значение true, y не вычисляется.
источник

MC

Mishel Crouf in CODE BLOG / C#
|| - если левый операнд будет true, правый вычисляться не будет, т.к. выражение будет true
источник

MC

Mishel Crouf in CODE BLOG / C#
| - вычисляет оба операнда, даже если первый будет true
источник

MC

Mishel Crouf in CODE BLOG / C#
и как твоя ссылка отвечает на мой вопрос?
источник

SB

Sergey Benzenko in CODE BLOG / C#
Дело в том, что оператор && имеет больший приоритет, чем ||, но меньший, чем |. Таким образом во втором случае условие замыкается на a > 10, что равно false.
источник

SB

Sergey Benzenko in CODE BLOG / C#
Короче, не смешивайте обычные и замыкающие операторы в одном выражении
источник

MC

Mishel Crouf in CODE BLOG / C#
Sergey Benzenko
Дело в том, что оператор && имеет больший приоритет, чем ||, но меньший, чем |. Таким образом во втором случае условие замыкается на a > 10, что равно false.
хм, о таком нигде не находил
источник

MC

Mishel Crouf in CODE BLOG / C#
было только сравнение приоритетов || и &&
источник

MC

Mishel Crouf in CODE BLOG / C#
но не встречал информации о сравнении разных
источник

MC

Mishel Crouf in CODE BLOG / C#
спасибо
источник

SB

Sergey Benzenko in CODE BLOG / C#
источник

MC

Mishel Crouf in CODE BLOG / C#
подозревал что дело в этом, т.к. заключение в скобки решало проблему
источник