Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
shwanoff
6 лет назад

Логические операции и условные операторы C#

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

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

Для проверки простого условия может использоваться оператор 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

Если мы имеем дело с сложным условием, когда в зависимости от значения переменной возможно больше, чем две ситуации, следует использовать оператор 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 очевидно при необходимости сравнения переменной с несколькими возможными значениями.

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

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

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

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

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

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

Источник: CODE BLOG

Мы в социальных сетях: Вконтакте, Telegram 

0
0.713 GOLOS
На Golos с April 2018
Комментарии (0)
Сортировать по:
Сначала старые