if-else (C# 參考)

if 陳述式會根據 Boolean 運算式的值選取要執行的陳述式。 在下列範例中,Boolean 變數 result 設為 true,然後以 if 陳述式進行檢查。 輸出如下:The variable is set to true。

bool result = true;

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

如果小括號中的運算式評估為 true,則執行 Console.WriteLine("The variable is set to true."); 陳述式。 if 陳述式執行完畢後,程式控制權便會轉移到下一個陳述式。 本範例中的 else 並不會執行。

如果您要執行一個以上陳述式,請如上述範例中使用 {} 將陳述式括起來成為一個區塊,便可以條件式執行多個陳述式。

根據測試條件結果而決定執行的陳述式可以是任何種類,包含巢狀於原 if 陳述式內的另一個 if 陳述式也可以。 在巢狀的 if 陳述式內,else 子句隸屬於最後一個沒有相對應的 else 子句的 if。 例如:


int x = 12;
int y = 18;

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

在這個範例中,如果條件 (y > 20) 的運算結果為 false,Statement_2 就會顯示出來。 但是,如果您想將 Statement_2 與條件 (x >10) 聯結起來,請使用大括號:


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

此時如果條件 (x > 10) 的運算結果為 false,Statement_2 就會顯示出來。

範例

在這個範例中,由鍵盤輸入一個字元後,程式會檢查輸入的字元是否為字母字元。 如果是,程式會檢查字元是大寫或小寫。 依照字元的大寫或小寫,顯示適當的訊息。


    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.
         * */
    }

也有可能使用以下的 else-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# 語言規格。 語言規格是 C# 語法和用法的決定性來源。

請參閱

參考

C# 關鍵字

?: 運算子 (C# 參考)

if-else Statement (C++)

switch (C# 參考)

概念

C# 程式設計手冊

其他資源

C# 參考