🔷 C#

Условия (if/else/switch) в C# (.NET 6): подробное руководство

Что такое условия и зачем они нужны?

Представь, что ты — волшебник, который управляет программой. Твоя программа умеет принимать решения сама, как живой человек. Например:

  • «Если на улице дождь, то возьми зонт».
  • «Если у тебя есть 100 рублей, то купи шоколадку, иначе — не покупай».

В программировании такие решения называются условиями. Они позволяют программе делать разные вещи в зависимости от того, какие данные она получает. Без условий программа была бы похожа на робота, который делает одно и то же, даже если мир вокруг меняется.

Главное условие: if (ЕСЛИ)

Самая простая конструкция — это if. Она проверяет, правда ли то, что написано в скобках. Если правда — выполняет команду.

// Синтаксис
if (условие)
{
    // Действие, если условие верно
}

// Пример
int age = 10;
if (age >= 7)
{
    Console.WriteLine("Пора в школу!");
}

Как это работает: Программа смотрит на число 10. Она проверяет: «10 больше или равно 7?» — Да! Значит, выводит сообщение.

Пример с вводом данных (stdin/stdout):

Console.Write("Сколько тебе лет? ");
int age = Convert.ToInt32(Console.ReadLine());

if (age >= 18)
{
    Console.WriteLine("Ты взрослый!");
}

Ввод: 20 Вывод: Ты взрослый!

Добавляем «иначе»: if-else

Иногда нужно сделать одно действие, если условие верно, и другое — если неверно. Для этого используется else (ИНАЧЕ).

if (условие)
{
    // Если правда
}
else
{
    // Если ложь
}

// Пример
int money = 50;
if (money >= 100)
{
    Console.WriteLine("Покупаем пиццу!");
}
else
{
    Console.WriteLine("Идём домой есть суп.");
}

Задача «Что больше?» (решение):

Console.Write("Введи первое число: ");
int a = Convert.ToInt32(Console.ReadLine());
Console.Write("Введи второе число: ");
int b = Convert.ToInt32(Console.ReadLine());

if (a > b)
{
    Console.WriteLine("Первое число больше!");
}
else if (b > a)
{
    Console.WriteLine("Второе число больше!");
}
else
{
    Console.WriteLine("Числа равны!");
}

Ввод: 5 и 3 Вывод: Первое число больше!

Много вариантов: switch

Когда нужно проверить одно и то же значение на множество разных вариантов, удобно использовать switch (ПЕРЕКЛЮЧАТЕЛЬ). Он похож на пульт управления: нажимаешь на кнопку — срабатывает конкретная команда.

switch (переменная)
{
    case значение1:
        // Команда для значения1
        break;
    case значение2:
        // Команда для значения2
        break;
    default:
        // Если ни один вариант не подошёл
        break;
}

// Пример
string day = "Пятница";
switch (day)
{
    case "Понедельник":
        Console.WriteLine("Начинаем неделю!");
        break;
    case "Пятница":
        Console.WriteLine("Ура, почти выходные!");
        break;
    default:
        Console.WriteLine("Обычный день.");
        break;
}

Задача «Парк аттракционов» (решение с switch):

Console.Write("Сколько лет посетителю? ");
int age = Convert.ToInt32(Console.ReadLine());

switch (age)
{
    case <= 3:
        Console.WriteLine("Бесплатный вход (до 3 лет)");
        break;
    case >= 4 and <= 12:
        Console.WriteLine("Детский билет (4-12 лет)");
        break;
    case >= 13 and <= 17:
        Console.WriteLine("Подростковый билет (13-17 лет)");
        break;
    case >= 18:
        Console.WriteLine("Взрослый билет (от 18 лет)");
        break;
}

Ввод: 10 Вывод: Детский билет (4-12 лет)

Частые ошибки новичков

  • Забыли фигурные скобки {} — если в блоке одна команда, скобки можно не ставить, но лучше всегда ставить, чтобы не запутаться.
  • Путают = и == — в условии нужно два знака равенства. Один знак — это присваивание.
  • Не пишут break в switch — если забыть break, программа «провалится» в следующий case и выполнит все команды подряд.
  • Сложные условия без скобок — когда проверяешь несколько условий через && (И) или || (ИЛИ), лучше ставить скобки: if ((a > 5) && (b < 10)).

Итоговый пример: «Магазин сладостей»

Давай решим задачу про скидки. Если сумма покупки больше 1000 рублей — скидка 10%, иначе — без скидки.

Console.Write("Введите сумму покупки: ");
double sum = Convert.ToDouble(Console.ReadLine());

if (sum > 1000)
{
    double discount = sum * 0.10; // 10% скидка
    double finalSum = sum - discount;
    Console.WriteLine("У вас скидка 10%!");
    Console.WriteLine("Итоговая сумма: " + finalSum + " рублей.");
}
else
{
    Console.WriteLine("Скидка не предоставляется.");
    Console.WriteLine("Итоговая сумма: " + sum + " рублей.");
}

Ввод: 1500 Вывод:
У вас скидка 10%!
Итоговая сумма: 1350 рублей.

Коротко о главном

  • if — «если правда, сделай это».
  • else if — «а если не первое, то может второе?».
  • else — «если ничего не подошло, сделай это».
  • switch — «выбери один вариант из многих».

Условия — это мозг твоей программы. Научись ими пользоваться, и ты сможешь написать любую логику: от игры до калькулятора скидок!