Підрозділ 2.11
Умовні вирази
Розглядає операції порівняння і логічні оператори, які повертають bool і використовуються для побудови умов.
2.11. Умовні вирази
Програми рідко виконуються лінійно від початку до кінця. Зазвичай потрібно приймати рішення: перевірити, чи вік пацієнта вписується в допустимий діапазон, чи є значення тиску критичним, чи не перевищено добову норму ліків. Для цього в C# існують умовні вирази — вирази, що повертають логічне значення типу bool: true (істина) або false (хибність). До умовних виразів належать оператори порівняння та логічні оператори.

Оператори порівняння
Оператори порівняння порівнюють два операнди і повертають bool. Якщо твердження відповідає дійсності — результат true, інакше — false.
| Оператор | Значення | Приклад |
|---|---|---|
== |
Рівність | age == 18 |
!= |
Нерівність | age != 0 |
< |
Менше ніж | age < 60 |
> |
Більше ніж | age > 18 |
<= |
Менше або рівно | age <= 110 |
>= |
Більше або рівно | age >= 0 |
Оператори <, >, <=, >= мають вищий пріоритет ніж == і !=.
Логічні оператори
Логічні оператори об'єднують кілька умовних виразів в один. Усі вони приймають операнди типу bool і повертають bool.
`&&` — логічне І (AND, кон'юнкція)
Повертає true лише тоді, коли обидва операнди дорівнюють true. Якщо хоч один — false, результат false.
`||` — логічне АБО (OR, диз'юнкція)
Повертає true, якщо хоча б один операнд дорівнює true. false лише коли обидва — false.
`!` — логічне НЕ (NOT, заперечення)
Унарний оператор: інвертує значення. !true → false, !false → true.
`^` — виключне АБО (XOR)
Повертає true, якщо операнди різні: один true, інший false. Якщо обидва однакові — повертає false.
`|` і `&` — операції без скорочення
C# також має пари | (логічне АБО) і & (логічне І), які на відміну від || і && завжди обчислюють обидва операнди. Це принципова різниця.
У виразі x || y: якщо x вже є true, обчислення y пропускається — результат і так true. Аналогічно x && y: якщо x є false, обчислення y пропускається. Це називається скороченим обчисленням (short-circuit evaluation) і підвищує продуктивність.
Оператори | і & зазвичай використовують для порозрядних операцій над цілими числами (що розглядалося в розділі 2.7). Для логічних перевірок умов застосовуйте && і || — вони ефективніші.
Комбінування умов
Умови можна поєднувати в складні вирази. Пріоритет: спочатку !, потім <, >, <=, >=, потім ==, !=, потім &, потім ^, потім |, потім &&, і нарешті ||. Для ясності завжди використовуйте дужки:
Результат умовного виразу — значення типу bool. Його можна зберігати у змінну, передавати в конструкції if, використовувати як аргумент методу або відразу виводити на екран.