if-else (Справочник по C#)

Выписка if определяет, какая выписка для выполнения на основе значение выражения Boolean. В следующем примере переменной result типа Boolean присваивается значение true, а затем она проверяется оператором if. В результате получается The condition is true.

bool condition = true;

if (condition)
{
    Console.WriteLine("The variable is set to true.");
}
else
{
    Console.WriteLine("The variable is set to false.");
}

Можно выполнить примеры в этом разделе, размещая их в методе Main приложения консоли.

Выписка if в C-# может занять 2 формы, как показано в следующем примере.

// if-else statement
if (condition)
{
    then-statement;
}
else
{
    else-statement;
}
// Next statement in the program.


// if statement without an else
if (condition)
{
    then-statement;
}
// Next statement in the program.

В инструкцию if-else, если condition имеет значение true, then-statement. Если condition, то значение else-statement. Поскольку condition не может быть одновременно имеет значение true, а значение, then-statement и else-statement выписки if-else никогда не могут выполнять оба. После запуска then-statement или else-statement, элемент управления передаются в следующую инструкцию после выписки if.

В инструкцию if, не включающую формулировку else, если condition имеет значение true, то then-statement. Если значение condition, то элемент управления передаются в следующую инструкцию после выписки if.

then-statement и else-statement могут состоять из одной или нескольких выписки выписки, заключенных в фигурные скобки ({}). Для одной выписки фигурные скобки необязательно но рекомендуется.

Выписка или выписки в then-statement и else-statement могут быть любого типа, включая другую оператора if, вложенных в исходной выписки if. Во вложенных выписках if, каждое предложение else принадлежит к последнему if, не имеет соответствующий объект else. В следующем примере Result1 возникает, если m > 10 и n > 20 возвращается значение true. Если m > 10 имеет значение true, а значение n > 20 - Result2.

// Try with m = 12 and then with m = 8. 
int m = 12;
int n = 18;

if (m > 10)
    if (n > 20)
    {
        Console.WriteLine("Result1");
    }
    else
    {
        Console.WriteLine("Result2");
    }

Вместо этого, если требуется Result2 появляться, если значение (m > 10), можно указать, что ассоциация с помощью фигурных скобок для задания начало и конец вложенных выписки if, как показано в следующем примере.

// Try with m = 12 and then with m = 8. 
if (m > 10)
{
    if (n > 20)
        Console.WriteLine("Result1");
}
else
{
    Console.WriteLine("Result2");
}

Result2, если условие (m > 10) возвращает значение false.

Пример

В следующем примере, ввести символ с помощью клавиатуры и программе вложенных оператора if для определения символа ввода буквы. Если символ ввода буквы, проверки, программы символа ввода в нижнем регистре или прописными буквами. Сообщение отображается для каждого случая.

Console.Write("Enter a character: ");
char c = (char)Console.Read();
if (Char.IsLetter(c))
{
    if (Char.IsLower(c))
    {
        Console.WriteLine("The character is lowercase.");
    }
    else
    {
        Console.WriteLine("The character is uppercase.");
    }
}
else
{
    Console.WriteLine("The character isn't an alphabetic character.");
}

//Sample Output: 

//Enter a character: 2 
//The character isn't an alphabetic character. 

//Enter a character: A 
//The character is uppercase. 

//Enter a character: h 
//The character is lowercase.

Также можно вкладывать выписка if внутри другого блока, как показано в следующем коде показан частично. Выписки if гнездев примера 2 внутри других блоков одного и затем блокируются. Комментарии, которые определяют условия true или false в каждом блоке.

// Change the values of these variables to test the results. 
bool Condition1 = true;
bool Condition2 = true;
bool Condition3 = true;
bool Condition4 = true;

if (Condition1)
{
    // Condition1 is true.
}
else if (Condition2)
{
    // Condition1 is false and Condition2 is true.
}
else if (Condition3)
{
    if (Condition4)
    {
        // Condition1 and Condition2 are false. Condition3 and Condition4 are true.
    }
    else
    {
        // Condition1, Condition2, and Condition4 are false. Condition3 is true.
    }
}
else
{
    // Condition1, Condition2, and Condition3 are false.
}

В следующем примере определяется символа ввода строчная буква, прописная буква, или число. 3, Если все условия имеют значение false, то символ не является алфавитно-цифровые символы. Пример выводит сообщение для каждого случая.

Console.Write("Enter a character: ");
char ch = (char)Console.Read();

if (Char.IsUpper(ch))
{
    Console.WriteLine("The character is an uppercase letter.");
}
else if (Char.IsLower(ch))
{
    Console.WriteLine("The character is a lowercase letter.");
}
else if (Char.IsDigit(ch))
{
    Console.WriteLine("The character is a number.");
}
else
{
    Console.WriteLine("The character is not alphanumeric.");
}

//Sample Input and Output: 
//Enter a character: E 
//The character is an uppercase letter. 

//Enter a character: e 
//The character is a lowercase letter. 

//Enter a character: 4 
//The character is a number. 

//Enter a character: = 
//The character is not alphanumeric.

Так как выписка в другом блоке или тогдашнем блоке может быть любой допустимой выпиской можно использовать любое допустимое логическое выражение для условия. Можно использовать логические операторы, такие как &&, &, || |и !, чтобы сделать составные условия. В следующем коде приведены примеры.

// NOT
bool result = true;
if (!result)
{
    Console.WriteLine("The condition is true (result is false).");
}
else
{
    Console.WriteLine("The condition is false (result is true).");
}

// Short-circuit AND
int m = 9;
int n = 7;
int p = 5;
if (m >= n && m >= p)
{
    Console.WriteLine("Nothing is larger than m.");
}

// AND and NOT
if (m >= n && !(p > m))
{
    Console.WriteLine("Nothing is larger than m.");
}

// Short-circuit OR
if (m > n || m > p)
{
    Console.WriteLine("m isn't the smallest.");
}

// NOT and OR
m = 4;
if (!(m >= n || m >= p))
{
    Console.WriteLine("Now m is the smallest.");
}
// Output:
// The condition is false (result is true).
// Nothing is larger than m.
// Nothing is larger than m.
// m isn't the smallest.
// Now m is the smallest.

Спецификация языка C#

Дополнительные сведения см. в Спецификация языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.

См. также

Ссылки

Ключевые слова C#

Оператор ?: (справочник по C#)

Оператор if-else (C++)

switch (Справочник по C#)

Основные понятия

Руководство по программированию на C#

Другие ресурсы

Справочник по C#