if-else (C# 參考)

更新:2007 年 11 月

if 陳述式會根據 Boolean 運算式的值選取要執行的陳述式。在下列範例中,有一個 Boolean 旗標 flagCheck 設為 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 子句隸屬於最後一個沒有相對應之 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# 語言規格中的下列章節:

  • 5.3.3.5 If 陳述式

  • 8.7.1 if 陳述式

請參閱

概念

C# 程式設計手冊

參考

C# 關鍵字

?: 運算子 (C# 參考)

The if-else Statement

switch (C# 參考)

其他資源

C# 參考