Операторы сравнения и условный оператор if..else в C# - C# и .NET

Операторы сравнения и условный оператор if..else в C#

В этой части мы рассмотрим те возможности языка C#, которые можно объединить одной фразой – “выстраивание логики работы программы”. Для выстраивания логики программы используются операторы сравнения, логические операторы и операторы управления потоком выполнения программы. Все эти три группы операторов так или иначе связаны с одним типом данныхbool и, либо возвращают одно из значений этого типа, либо используют его для своей работы.

Операторы сравнения в C#

Операторы сравнения используются для выявления взаимосвязей между двумя операндами и возвращают true или false в зависимости от результата выполнения операции. Эти операторы достаточно простые и известны нам ещё со кольной скамьи, поэтому просто перечислим их.

  • Равно (==)  – этот оператор возвращает значение true, если значение левого операнда равно значению правого операнда. Например, 7==3 вернет false. Таким образом, оператор «равно» (==) проверяет, равны ли два операнда. Если равны, возвращается значение true , иначе — false .
  • Не равно (!=) – этот оператор сравнения вернет значение true, если значение левого операнда не равно значению правого операнда. Например, 5 != 3 вернет true . Таким образом, оператор “не равно” (!= ) действует прямо противоположно предыдущему оператору.
  • Меньше, чем (<) – этот оператор вернет значение true, если значение левого операнда меньше значения правого операнда. Например, 7<3 вернет false
  • Меньше или равно (<=) – этот оператор вернет true , если значение левого операнда меньше или равно значению правого операнда. Например, 5<=5 вернет true
  • Больше, чем (>) – этот оператор вернет true , если значение левого операнда больше, чем значение правого операнда. Например, 5>3 вернет true
  • Больше или равно (>=) – этот оператор вернет true , если значение левого операнда больше или равно значению правого операнда. Например, 5>=5 вернет true

Результат работы оператора сравнения может быть присвоен какой-либо переменной типа bool или же использоваться в более сложных (составных) операторах для управления потоком выполнения программы. Рассмотрим применение операторов сравнения в C#.

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

Условный оператор if..else используется для проверки истинности некоторого условия и выполнения действий, в зависимости от результата проверки. Описание этого оператора выглядит следующим образом:

if (условие)
{
   действие_1;
}
else
{
   действие_2
}

Здесь условие – это любая операция, которая возвращает логическое значение (true или false), а действие_1 и действие_2 – инструкции, которые выполняются, в зависимости от значения условия. Если условие возвращает значение true, то выполняется действие_1, иначе – выполняется действие_2

Таким образом, уже сейчас нам ничего не мешает объединить работу операторов сравнения и условного оператора, чтобы написать свою первую программу на C#, в которой мы будем управлять потоком выполнения (менять порядок выполнения инструкций).

Пусть условия задачи будут такими: задать две переменных a и b типа int, присвоить им произвольные значения. Если значения переменных равны, то вывести их сумму, иначе – удвоенную сумму.

В этой задаче нам указано условие: “Если значения переменных равны” и два действия – “то вывести их сумму” и “иначе – удвоенную сумму“. За проверку равенства значений у нас отвечает оператор == 

Теперь попробуем представить наше задачу в виде псевдокода:

if (значения переменных равны) 
{ 
   вывести их сумму; 
} 
else 
{ 
   вывести удвоенную сумму 
}

Остается только оформить нашу задачу в виде исходного кода C#. Вот как он будет выглядеть:

//задаем две переменные типа int
int a = 10;
int b = 11;
//проверяем условие
if (a == b)
{
    //условие истинно
    Console.WriteLine(a + b);
}
else
{
    //условие ложно
    Console.WriteLine(2 * (a + b));
}

В нашем случае, так как значения переменных не равны, то в результате мы увидим в консоли значение 42 (2*(10+11)=42). Попробуйте поменять значение переменных так, чтобы они были равны и снова запустить приложение – вы увидите, что программа выведет в консоль просто сумму двух чисел.

Если действие в операторе if..else состоит всего из одной инструкции, то можно не выделять его в блок кода. Например, в нашем случае, мы могли бы оформить оператор вот так:

if (a == b)
    Console.WriteLine(a + b);
else
    Console.WriteLine(2 * (a + b));

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

задать две переменных a и b типа int, присвоить им произвольные значения. Если значения переменных равны, то вывести их сумму, иначе, если a больше b, то вывести удвоенную сумму, в противном случае – вывести утроенную сумму.

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

//задаем две переменные типа int
int a = 10;
int b = 11;
//проверяем условие
if (a == b)
    Console.WriteLine(a + b);
else if (a > b)
    Console.WriteLine(2 * (a + b));
else
    Console.WriteLine(3 * (a + b));

И, в заключении про условный оператор стоит сказать, что у оператора может отсутствовать ветка else Например, если нам просто необходимо проверить истинность условия, то оператор может выглядеть вот так:

if (a == b)
    Console.WriteLine(a + b);

Тернарный оператор (сокращенная проверка)

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

Условие ? Действие_1 : Действие_2

Принцип работы тернарного оператора точно такое же, как и условного оператора if: если условие возвращает значение true, то выполняется действие_1, иначе – выполняется действие_2.

Подведем итог

Операторы сравнения используются для выявления связей между двумя операндами и могут возвращать только одно из двух значений – trueили false. Эти операторы могут использоваться в составе условного оператора if..else, который позволяет управлять потоком выполнения программы в зависимости от значения переданного в оператор условия.

Домашнее задание №9

Напишите программу на C#, которая рассчитывает разность между n и числом 48, где n — это любое целое число. Если n больше 48, то верните тройную разность, иначе – выведите сообщение “n меньше 48”