if 語句基于布爾表達式的值來識別運行哪個語句。 在下面的示例中, bool 變量 condition 已被設置為 true ,然后被簽入到了 if 語句。 輸出為 The variable is set to true.。
bool condition = true;if (condition)
{Console.WriteLine("The variable is set to true.");
}
else
{Console.WriteLine("The variable is set to false.");
}
你可以通過將本主題中的示例放入控制臺應用的 Main 方法中來運行它們。
C# 中的 if 語句可以采用兩種形式,如以下示例所示。
// 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.
then-statement 和 else-statement 中的語句可為任何類型,包括嵌套在原始 if 語句中的另一個 if 語句。 在嵌套的 if 語句中,每個 else 子句都屬于上一個無相應 if 的 else。 在下面的示例中,如果 Result1 和 m > 10 計算結果都為 true,則將顯示 n > 20 。 如果 m > 10 為 true 但 n > 20 為 false,則將顯示 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");}
// Try with m = 12 and then with m = 8.
if (m > 10)
{if (n > 20)Console.WriteLine("Result1");
}
else
{Console.WriteLine("Result2");
}
如果條件 (m > 10) 的計算結果為 false,則顯示 Result2。
示例
在下例中,當通過鍵盤輸入字符時,該程序將使用嵌套的 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 語句嵌套到 else 塊中,如以下部分代碼所示。 示例將 if 語句嵌套在兩個 else 塊和一個 then 塊中。 注釋指定每個塊中哪些條件為 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.
}
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.