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

Обновлен: Ноябрь 2007

Оператор if выбирает оператор для выполнения на основе значения выражения Boolean. В следующем примере флагу BooleanflagCheck присваивается значение true, а затем он проверяется оператором if. Результат получается следующим: The flag is set to true.

bool result = true;

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

Если выражение в скобках оценивается как "true", то выполняется оператор Console.WriteLine("The boolean flag is set to true."); . После выполнения оператора if управление передается следующему оператору. В этом примере "else" не выполняется.

Если требуется выполнить более одного оператора, условное выполнение нескольких операторов можно организовать, объединив их в блоки с помощью {}, как продемонстрировано в приведенном выше примере.

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

int x = 12;
int y = 18;

if (x > 10)
    if (y > 20)
        Console.Write("Statement_1");
    else
        Console.Write("Statement_2");

В этом примере Statement_2 отображается, если условие (y > 20) оценивается как false. Однако если требуется связать Statement_2 с условием (x >10), используйте фигурные скобки:

if (x > 10)
{
    if (y > 20)
        Console.Write("Statement_1");
}
else
    Console.Write("Statement_2");

В этом случае Statement_2 отображается, если условие (x > 10) оценивается как false.

Пример

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

class IfTest
{
    static void Main()
    {
        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("Not an alphabetic character.");
        }
    }

    /*
    Input:
    2
    Sample Output
    Enter a character: 2
    The character is not an alphabetic character.
    Additional sample might look as follows:
    Run #2:
    Enter a character: A
    The character is uppercase.
    Run #3:
    Enter a character: h
    The character is lowercase.
     * */
}

Также можно расширить возможности оператора if, чтобы обрабатывать несколько условий с помощью следующего расположения "if":

if (Condition_1)
{
    // Statement_1;
}
else if (Condition_2)
{
    // Statement_2;
}
else if (Condition_3)
{
    // Statement_3;
}
else
{
    // Statement_n;
}

В этом примере проверяется, является ли введенный символ прописной буквой, строчной буквой или цифрой. В противном случае символ не является буквенно-цифровым знаком. В программе используется цепная схема "else-if".

    public class IfTest3
{
    static void Main()
    {
        Console.Write("Enter a character: ");
        char c = (char)Console.Read();

        if (Char.IsUpper(c))
        {
            Console.WriteLine("Character is uppercase.");
        }
        else if (Char.IsLower(c))
        {
            Console.WriteLine("Character is lowercase.");
        }
        else if (Char.IsDigit(c))
        {
            Console.WriteLine("Character is a number.");
        }
        else
        {
            Console.WriteLine("Character is not alphanumeric.");
        }
    }
}
    /*
        Sample Input:  E

        Sample Output:
        Enter a character: E
        The character is uppercase.

        Additional sample runs might look as follows:
        Run #2
        Enter a character: e
        The character is lowercase.
        Run #3:
        Enter a character: 4
        The character is a number.
        Run #4:
        Enter a character: $
        The character is not alphanumeric.
    */

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

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

  • 5.3.3.5 Операторы "if"

  • 8.7.1 Оператор "if"

См. также

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

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

Ссылки

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

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

The if-else Statement

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

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

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