Содержание
В этой части мы рассмотрим те возможности языка 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”