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