更新:2007 年 11 月
變更程式的控制流程以回應某些輸入或計算值,是程式設計語言的基本工作。C# 提供無條件 (跳躍至新的程式碼位置) 或是有條件 (執行測試) 的方式,變更控制流程的功能。
備註
最簡單的條件分支格式便是使用 if 結構。您可以使用 else 子句搭配 if 結構,並且 if 結構可以是巢狀的。
using System;
class Program
{
static void Main()
{
int x = 1;
int y = 1;
if (x == 1)
Console.WriteLine("x == 1");
else
Console.WriteLine("x != 1");
if (x == 1)
{
if (y == 2)
{
Console.WriteLine("x == 1 and y == 2");
}
else
{
Console.WriteLine("x == 1 and y != 2");
}
}
}
}
注意事項: |
|---|
與 C 和 C++ 不同的是,if 陳述式需要布林值。例如,並不允許使用無法被評估為 True 或 False 評估的陳述式 (例如 (a=10))。在 C# 中,0 不能用來取代 False,而 1 或任何其他值不能用來取代 True。 |
在 if 和 else 關鍵字之後的陳述式可以為單行的程式碼,如在先前程式碼範例的第一個 if-else 陳述式中所示,或可為包含在括弧中的陳述式區塊,如第二個 if-else 陳述式所示。您可以巢狀 if-else 陳述式,但是通常會認為使用 switch 陳述式取代是較佳的程式設計作法。
依照指定之運算式的值而定,switch 陳述式可以執行多種動作。如果符合條件,就會執行 case 陳述式和 break 關鍵字之間的程式碼。如果您要控制流程繼續執行到另一個 case 陳述式,請使用 goto 關鍵字。
using System;
class Program
{
static void Main()
{
int x = 3;
switch (x)
{
case 1:
Console.WriteLine("x is equal to 1");
break;
case 2:
Console.WriteLine("x is equal to 2");
break;
case 3:
goto default;
default:
Console.WriteLine("x is equal to neither 1 nor 2");
break;
}
}
}
switch 陳述式用來決定要執行案例的運算式必須使用內建資料型別 (Visual C# Express),例如 int 或 string;您無法使用更複雜的使用者定義型別。
與 Visual Basic 不同的是,C# 中的條件必須是常數值。例如,不允許比較運算式和數值範圍。
注意事項: