if ( условие)
{
последовательность операторов
}
else
{
последовательность операторов
}
Если условное выражение оказывается истинным, то выполняется адресат оператора if. В противном случае выполняется адресат оператора else, если таковой существует. Но одновременно не может выполняться и то и другое. Условное выражение, управляющее оператором if, должно давать результат типа bool.
Ниже приведен пример простой программы, в которой операторы if и else используются для того, чтобы сообщить, является ли число положительным или отрицательным.
// Определить, является ли числовое значение положительным или отрицательным.
using System;
class PosNeg {
static void Main() {
int i;
for(i=-5; i <= 5; i++) {
Console.Write("Проверка " + i + ": ");
if(i < 0)
Console.WriteLine("отрицательное число");
else
Console.WriteLine("положительное число");
}
}
}
Результат выполнения этой программы выглядит следующим образом.
Проверка -5: отрицательное число
Проверка -4: отрицательное число
Проверка -3: отрицательное число
Проверка -2: отрицательное число
Проверка -1: отрицательное число
Проверка 0: положительное число
Проверка 1: положительное число
Проверка 2: положительное число
Проверка 3: положительное число
Проверка 4: положительное число
Проверка 5: положительное число
Если в данном примере значение переменной i оказывается меньше нуля, то выполнятся адресат оператора if. В противном случае выполняется адресат оператора else, одновременно они не выполняются.
Вложенные операторы if
Вложенным называется такой оператор if, который является адресатом другого оператора ifили же оператора else. Вложенные операторы ifочень часто применяются в программировании. Что же касается их применения в С#, то не следует забывать, что любой оператор elseвсегда связан с ближайшим оператором if, т.е. с тем оператором if, который находится в том же самом блоке, где и оператор else, но не с другим оператором else. Рассмотрим следующий пример.
if (i == 10) {
if (j < 20) -a = b;
if(k > 100) с = d;
else a = с; // этот оператор else связан с оператором if(k > 100)
}
else a = d; // этот оператор else связан с оператором if(i == 10)
Как следует из комментариев к приведенному выше фрагменту кода, последний оператор elseне связан с оператором if (j < 20),поскольку они не находятся в одном и том же блоке, несмотря на то, что этот оператор является для него ближайшим оператором ifбез вспомогательного оператора else. Напротив, последний оператор elseсвязан с оператором if (i == 10).А внутренний оператор else связан с оператором i f (k > 100),поскольку этот последний является для него ближайшим оператором ifв том же самом блоке.
В приведенном ниже примере программы демонстрируется применение вложенного оператора if. В представленной ранее программе определения положительных и отрицательных чисел о нуле сообщалось как о положительном числе. Но, как правило, нуль считается числом, не имеющим знака. Поэтому в следующей версии данной программы о нуле сообщается как о числе, которое не является ни положительным, ни отрицательным.
// Определить, является ли числовое значение
// положительным, отрицательным или нулевым.
using System;
class PosNegZero {
static void Main() {
int i;
for(i=-5; i <= 5; i++) {
Console.Write("Проверка " + i + ": ");
if(i < 0)
Console.WriteLine("отрицательное число");
else
if(i == 0)
Console.WriteLine("число без знака");
else
Console.WriteLine("положительное число");
Читать дальше