Доброго времени суток, дорогие читатели. Нам всем довольно часто приходиться делать какие то сравнения, сравнивать вещи, продукты и прочее. В программировании без этого так же не обойтись. Как быть если нам нужно сравнить какое из двух чисел больше? Для этого нужно использовать условные операторы, с которыми мы сейчас и познакомимся.
В языке C#, как и во многих других языках предусмотрен оператор сравнения
if ... else.
if (условие)
оператор 1
else
оператор 2
Если же нужно выполнить более одной строки, то эти строки должны быть взяты в блоки
{...}.
Для сравнения используются знаки
> (больше), < (меньше), == (равно), != (не равно), <= (меньше или равно), >= (больше или равно). Для проверки нескольких условий используются
&& (И), || (Или), ! (Не).
Вот пример работы с проверкой условия:
int a = 3;
int b = 5;
if (a > b)
{
Console.WriteLine(a + " больше чем " + b);
Console.WriteLine(b + " меньше чем " + a);
}
else
{
Console.WriteLine(b + " больше чем " + a);
Console.WriteLine(a + " меньше чем " + b);
}
В данном примере мы инициализировали переменные значениями 3 и 5 и следующей строкой сделали проверку условия. Если условие верно, то выполнится код, который находится после
if, иначе выполнится код, который находится после
else.
Сделаем более сложное условие для другого примера:
int a = 4;
int b = 3;
if (a % 2 == 0 && b % 2 != 0)
Console.WriteLine(a + " - четное, а " + b + " - нечетное");
else
if (a % 2 != 0 && b % 2 == 0)
Console.WriteLine(b + " - четное, а " + a + " - нечетное");
else
if (a % 2 == 0 && b % 2 == 0)
Console.WriteLine(a + " - четное, а " + b + " - четное");
% - остаток от деления. Если
a четно и
b нечетное, то сообщаем об этом пользователю, иначе проверяем аналогично остальные варианты.
Условные операторы могут быть вложены друг в друга. Например:
string name = "Александр";
string sname = "Иванов";
string name2 = "Александр";
string sname2 = "Петров";
if (sname != sname2)
{
Console.WriteLine("У этих людей разные фамилии.");
if (name == name2)
Console.WriteLine("Но одинаковые имена.");
else
Console.WriteLine("И разные имена.");
}
Сперва проверили равны ли фамилии, затем проверили равны ли имена. Результат выполнения:
У этих людей разные фамилии.
Но одинаковые имена.
Поэкспериментируйте с данным примером. Попробуйте сделать так, что если фамилии совпадают, то на экране появится сообщение "Они однофамильцы.".
Попробуем написать приложение, которое проверит наши знания по истории. На экране должно появится сообщение "В каком году была Великая Отечественная Война?", мы введем число, и программа скажет нам правы мы или нет. Для того чтобы считать число с клавиатуры мы должны написать следующее:
int year = int.Parse(Console.ReadLine());
С помощью
ReadLine мы считываем строку с клавиатуры, а с помощью
int.Parse преобразуем ее к целому числу.
int year = int.Parse(Console.ReadLine());
if (year == 1941)
Console.WriteLine("Правильно!");
else
Console.WriteLine("Не правильно!");
Считывает число с клавиатуры, проверяем равно ли оно правильному ответу и в зависимости от правильности условия выводим текст.
Иногда бывают случаи, когда нужно много много раз вставлять условия друг в друга, чтобы этого избежать, существует оператор
switch. Синтаксис данного оператора следующий:
switch(выражение)
{
case число1: операторы break;
case число2: операторы break;
...
default: операторы break;
}
Рассмотрим на практике:
int a = 2;
switch (a)
{
case 1:
{
Console.WriteLine("a = 1");
break;
}
case 2:
{
Console.WriteLine("a = 2");
break;
}
case 3:
{
Console.WriteLine("a = 3");
break;
}
default:
{
Console.WriteLine("a больше чем 3, либо меньше 0");
break;
}
}
Сравниваем чему равно
a. В данном случае оно равно 2, и следовательно на экране появится сообщение a = 2.
В следующем уроке рассмотрим все последние изученные нами знания на практике.