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