Условные операторы C# | If C# и Switch C#

При разработке программ часто возникает необходимость сделать своеобразную развилку. То есть в зависимости от выполнения или не выполнения какого-либо условия дальнейшие операции, выполняемые приложением могут отличаться. В простейшем случае достаточно проговорить про себя: «Если, то, иначе». В основном, логические операции опираются на тип данных bool, который принимает значения true (истина) или false (ложь). Давайте же рассмотрим условные операторы C#, которые позволяют это реализовать в коде.

Смотрите моё видео на тему Условные операторы C# и конструкции if и switch

Подпишись на группу Вконтакте и Телеграм-канал. Там еще больше полезного контента для программистов.
А на YouTube-канале ты найдешь обучающие видео по программированию. Подписывайся!

Условный оператор if C#

Для проверки простого условия может использоваться оператор if. В общем случае он имеет следующий вид:

if(<Условие>)
{
    <Действие 1>
}
else
{
    <Действие 2>
}

Если условие истинно, то выполняется действие 1, если же условие было ложным — выполняется действие 2. Следует заметить, что ветка else не является обязательной.

В операторе if могут быть использованы следующие операторы сравнения:

  • > — больше
  • < — меньше
  • >= — больше или равно
  • <= — меньше или равно
  • == — равно
  • != — не равно

Предположим, нам необходимо вычислить значение некоторой функции. Пусть это будет y(x) = 100 / (x — 12). (Функция взята рандомно) Как вы видите, при попытке вычисления функции при x = 12, мы получим ошибку: «Деление на ноль». Следовательно, необходимо обеспечить обработку некорректного вычисления. Для этого, позволим ввести пользователю переменную х,  после постараемся вычислить у(x). Код будет выглядеть следующим образом:

double x = Convert.ToDouble(Console.ReadLine());

if(x == 12)
{
    Console.WriteLine("Эй, гражданина...");
}
else
{
    Console.WriteLine("y = " + 100 / (x - 12));
}

Также возможно использование условного оператора if без указания явного условия. Кажется абракадаброй, но тем не менее, true (истина) — это любое значение отличное от нуля, false — ноль. Можем использовать это свойство. Вернемся к задаче вычисления значения некоторой функции. y(x) = 1 / x. В данном случае, если x равен нулю — мы снова получаем ошибку. В итоге имеем следующий код:

int x = Convert.ToInt32(Console.ReadLine());

if(x)
{
    Console.WriteLine("Эй, гражданина...");
}
else
{
    Console.WriteLine("y = " + 100 / x);
}

Также любое логическое выражение можно инвертировать, то есть из истины сделать ложь, а из ложного значения истинное. Например !(1 > 10) — истина, а !(1 < 10) — ложь.

Условный оператор switch C#

Если мы имеем дело с сложным условием, когда в зависимости от значения переменной возможно больше, чем две ситуации, следует использовать оператор switch (переключатель). Выглядит он так:

switch(i)
{
case <Значение 1>:
    <Действия 1>
    break;
... 
case <Значение n>:
    <Действия n>
    break;
default:
    <Действия по умолчанию>
    break;
}

Как вы можете видеть, в зависимости от значения i, выполняются те или иные действия. Например, выбираем город для житья:

switch(city)
{
    case "Москва":
        Console.WriteLine("А денег хватит?");
        break;
    case "Санкт-Петербург":
        Console.WriteLine("Точно не хватит!");
        break;
    case "Сан-Диего":
        Console.WriteLine("Мечтать не вредно...");
        break;
    default:
        Console.WriteLine("А нам и дома хорошо.");
        break;
}

Удобство использования switch-case очевидно при необходимости сравнения переменной с несколькими возможными значениями.

Сокращенная проверка C#

Своеобразная вишенка на пироге: чтобы использовать if совсем не обязательно писать всю громоздкую конструкцию. Сокращенный вариант выглядит следующим образом:

<Условие> ? <Действие 1> : <Действие 2>

Например условие из первого примера примет вид:

Console.WriteLine(x == 12 ? "Эй, гражданина..." : "y = " + 100 / (x - 12));

Условные операторы C# — Итоги

Вот и основные логические операции языка c#. Удачных экспериментов, коллеги.

Рекомендую ознакомиться со статьей Математические операции в языке C#. А также подписывайтесь на группу ВКонтакте, Telegram и YouTube-канал. Там еще больше полезного и интересного для программистов.