Условный оператор if позволяет выбрать одну из двух ветвей вычислительного процесса.
Общий вид оператора:
if (выражение)
{
Операторы1;
}
[Else
{
Операторы2;
}]
Выражение в скобках после if является логическим выражением, значением которого является одно из двух логических значений true (истина) или false (ложь). В первом случае выполняются Операторы1, во втором – Операторы2. Вторая ветвь (Операторы2) может отсутствовать. Об этом говорит наличие квадратных скобок в определении оператора. (То, что заключено в квадратные скобки, не является обязательным.) После выполнения какой-либо одной из ветвей условный оператор считается выполненным. Наличие фигурных скобок не является обязательным, если какая-либо ветвь содержит один оператор, в котором нет объявления переменных. Однако рекомендуется фигурные скобки использовать всегда, что делает структуру программы более наглядной. Например,
int i = 1, x;
if (i <= 10)
{
x = 5;
}
else
x = 0;
Console.WriteLine(x);
Если требуется выполнить более одного оператора после if или после else, то их все обязательно помещают внутри скобок {}. Эти операторы образуют блок. Например,
int i = 15, x;
if (i <= 10)
{
x = 5;
Console.WriteLine(x);
}
else
{
x = 2;
Console.WriteLine(x);
}
Каждый из двух блоков условного оператора (наличие обоих блоков необязательно) может содержать любые операторы, в том числе условные операторы. Если условный оператор входит в состав блока Операторы1, выполняемого после if, то он записывается и выполняется по общим правилам. Если проверка условия осуществляется после else, то используется оператор else if (условие), использование которого демонстрирует следующая схема:
if (условие1)
{
Операторы1;
}
else if (условие2)
{
Операторы2;
}
[else
{
Операторы3;
}]
Если истинно условие1, то выполняются Операторы1 и условный оператор заканчивает работу. Если условие1 ложно, то проверяется условие2, и, если оно истинно, то выполняются Операторы2, в противном случае выполняются Операторы3, если присутствует последний else,или конструкция не выполняет никаких действий. Последний else всегда относится к последнему if, для которого еще не было соответствующего else. Например,
int a = -4, x = 0;
if (a > 5)
x = 1;
else if (a > 0 )
x = 2;
else
x = 3;
Console.WriteLine(x);
В результате при a = 3 будет x = 2; при a = - 4 будет x = 3.
Замечания:
1. В рассмотренном примере после каждого условия следует один оператор и фигурные скобки необязательны.
2. В языке C# существует упрощенный вариант записи условного оператора, называемый оператором проверки, который можно использовать в выражении. Общий вид оператора проверки:
(условие) ? значение1: значение2;
Например,
int i = 4>m? 6 : 8;
Если, например, m = 9, то условие не выполняется (имеет значение false) и переменной i будет присвоено значение 8. При использовании оператора проверки следует помнить о правилах приоритета, так как в этом операторе могут использоваться арифметические, логические операторы и операторы отношений.