Логічні операції (&&, ||, !, ^) застосовні лише до значень типу boolean. Їх результатом також служать величини типу boolean.
| Оператор | Операція | Пояснення | Приклад |
|---|---|---|---|
| ! | Лог. заперечення | НЕ | F=!C; |
| && | Лог. множення | І | F=D && T; |
| || | Лог. додавання | АБО | F=A || B; |
| ^ | Виключаюче АБО | Викл. АБО | F=A ^ B; |
Також у C# визначені логічні оператори, які також повертають значення типу bool. Як операнди вони приймають значення типу bool. Як правило, застосовуються до відношень та об'єднують кілька операцій порівняння.
Операція логічного додавання або логічне АБО. Повертає true, якщо хоча б один з операндів повертає true.
Операція логічного множення або логічне І. Повертає true, якщо обидва операнди одночасно рівні true.
Тут у нас дві пари операцій | і || (а також & і &&) виконують схожі дії, однак вони не рівноцінні.
У виразі z=x|y; будуть обчислюватися обидва значення - x і y.
У виразі ж z=x||y; спочатку буде обчислюватися значення x, і якщо воно дорівнює true, то обчислення значення y вже не має сенсу, оскільки у нас у будь-якому випадку вже z буде дорівнювати true. Значення y буде обчислюватися тільки в тому випадку, якщо x дорівнює false
Те саме стосується пари операцій &/&&. У виразі z=x&y; будуть обчислюватися обидва значення - x і y.
У виразі ж z=x&&y; спочатку буде обчислюватися значення x, і якщо воно дорівнює false, то обчислення значення y вже не має сенсу, оскільки у нас у будь-якому випадку вже z буде дорівнювати false. Значення y буде обчислюватися тільки в тому випадку, якщо x дорівнює true
Тому операції || і && зручніші в обчисленнях, оскільки дозволяють скоротити час на обчислення значення виразу, і тим самим підвищують продуктивність. А операції | і & більше підходять для виконання побітових операцій над числами.
Операція && має вищий пріоритет, ніж операція ||. Так, у виразі true || true && false спочатку виконується підвираз true && false.