Умовні конструкції в C#

Керування потоком виконання: як програма “обирає шлях” залежно від умов.

1 Логічний фундамент

Умови в C# базуються на типі bool, який має два значення: true або false. Щоб отримати bool, ми використовуємо оператори порівняння:

  • == (Рівність)
  • != (Нерівність)
  • > (Більше)
  • <= (Менше або =)

Порада:

Умовний оператор чекає саме bool. У C# не можна написати if (age) як в деяких мовах — треба if (age > 0) або іншу явну перевірку.

2 if / else if / else

Найпоширеніший спосіб зробити вибір у програмі — if.

Program.cs
int score = 78;

if (score >= 90)
{
    Console.WriteLine("Відмінно");
}
else if (score >= 70)
{
    Console.WriteLine("Добре");
}
else if (score >= 50)
{
    Console.WriteLine("Задовільно");
}
else
{
    Console.WriteLine("Незадовільно");
}
Умови потрібно писати від найсильнішої (90+) до найзагальнішої, інакше логіка “зламається”.

3 switch

Коли варіантів багато (наприклад, колір світлофора), зручніше використовувати switch.

Program.cs
string color = "green";

switch (color)
{
    case "red":
        Console.WriteLine("Стоп");
        break;
    case "yellow":
        Console.WriteLine("Приготуйся");
        break;
    case "green":
        Console.WriteLine("Рухайся");
        break;
    default:
        Console.WriteLine("Невідомий сигнал");
        break;
}

Бонус: switch expression

У сучасному C# можна писати коротше:

string action = color switch
{
    "red" => "Стоп",
    "yellow" => "Приготуйся",
    "green" => "Рухайся",
    _ => "Невідомий сигнал"
};

4 Тернарний оператор

Якщо треба вибрати між двома варіантами, можна використати condition ? a : b.

Program.cs
int age = 17;
string access = age >= 18 ? "Доступ дозволено" : "Доступ заборонено";
Console.WriteLine(access);