Підрозділ 2.12
Конструкція if..else та тернарна операція
Пояснює умовні конструкції if, else, else if та тернарний оператор для вибору різних гілок виконання програми.
2.12. Конструкція if..else та тернарна операція
Умовні вирази (розділ 2.11) повертають true або false — але самі по собі нічого не роблять. Щоб програма реагувала на результат перевірки і виконувала різні дії залежно від умови, використовуються умовні конструкції. Найпоширеніша з них — if...else.

Блок if
Найпростіша форма — блок if без гілки else. Якщо умова в дужках дорівнює true, виконується тіло блоку; якщо false — тіло пропускається і програма продовжується далі:
if (умова)
{
// виконується лише коли умова == true
}Якщо тіло блоку складається лише з однієї інструкції, фігурні дужки можна опустити. Проте для читабельності та уникнення помилок краще завжди їх писати:
if (bpSystolic >= 160)
Console.WriteLine("Критично підвищений тиск!"); // одна інструкціяБлок else
Блок else виконується, якщо умова блоку if дорівнює false. Таким чином одна з двох гілок завжди виконається:
Ланцюжок else if
Коли варіантів більше двох, до конструкції додаються гілки else if. CLR перевіряє умови зверху вниз і виконує першу гілку, умова якої є true. Решта гілок при цьому ігноруються:
Останній блок else є необов'язковим, але виступає «страхувальною» гілкою, що обробляє всі інші випадки. В медичних системах рекомендується завжди його вказувати.
Вкладені if
Умовні конструкції можна вкладати одна в одну. При цьому важливо стежити за відступами, щоб не заплутатись у структурі:
Тернарна операція
Тернарна (умовна) операція є компактним варіантом if...else для виразів — тобто там, де потрібно обрати одне з двох значень залежно від умови. Синтаксис:
умова ? значення_якщо_true : значення_якщо_falseОператор ? приймає три операнди, звідки й назва «тернарний». Якщо умова true — результатом є другий операнд; якщо false — третій:
Тернарний оператор зручний для коротких виразів. Для складних умов або кількох дій краще використовувати повну конструкцію if...else — це підвищує читабельність і спрощує підтримку коду.
Тернарні оператори можна вкладати один в одний, але більше одного рівня вкладення суттєво знижує зрозумілість:
Умова як значення bool
В умові блоку if може стояти будь-який вираз, що повертає bool — у тому числі змінна типу bool, результат порівняння або повернене значення методу:
Ніколи не пишіть if (isEmergency == true) — це надлишок. if (isEmergency) і if (!isEmergency) — коректний і лаконічний стиль.