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("положительное число");
Читать дальше