if if else if if else if if

if 語句用於控制程式的流程。if 語句根據 Boolean 表示式的值標識要執行的語句。

對於單個語句,braces {}是可選的,但建議使用。

int a = 4;
if(a % 2 == 0) 
{
     Console.WriteLine("a contains an even number");
}
// output: "a contains an even number"

if 也可以有一個 else 子句,在條件計算結果為 false 時執行:

int a = 5;
if(a % 2 == 0) 
{
     Console.WriteLine("a contains an even number");
}
else
{
     Console.WriteLine("a contains an odd number");
}
// output: "a contains an odd number"

ifelse if 構造允許你指定多個條件:

int a = 9;
if(a % 2 == 0) 
{
     Console.WriteLine("a contains an even number");
}
else if(a % 3 == 0) 
{
     Console.WriteLine("a contains an odd number that is a multiple of 3"); 
}
else
{
     Console.WriteLine("a contains an odd number");
}
// output: "a contains an odd number that is a multiple of 3"

重要的是要注意,如果在上面的示例中滿足條件,控制元件將跳過其他測試並跳轉到該特定 if else 結構的末尾。因此,如果使用 if,則測試順序很重要.. else if 構造

C#布林表示式使用短路評估 。在評估條件可能有副作用的情況下,這很重要:

if (someBooleanMethodWithSideEffects() && someOtherBooleanMethodWithSideEffects()) {
  //...
}

無法保證 someOtherBooleanMethodWithSideEffects 實際上會執行。

在早期條件確保評估以後條件安全的情況下,這也很重要。例如:

if (someCollection != null && someCollection.Count > 0) {
   // ..
}

在這種情況下,訂單非常重要,因為如果我們顛倒訂單:

if (someCollection.Count > 0 && someCollection != null) {

如果 someCollectionnull,它會丟擲一個 NullReferenceException