最基礎的條件控制,適用於少數離散條件:
string input = Console.ReadLine();
if (input == "GoSoA")
Console.WriteLine("www.GoSoA.com.cn");
else if (input == "163")
Console.WriteLine("www.163.com");
else if (input == "sina")
Console.WriteLine("www.sina.com");
else
Console.WriteLine("www.cnblogs.com");
當條件較多且皆為常數比較時,switch 更清晰且效能較佳:
switch (input)
{
case "gosoa":
Console.WriteLine("www.gosoa.com.cn");
break;
case "163":
Console.WriteLine("www.163.com");
break;
default:
Console.WriteLine("www.cnblogs.com");
break;
}
關鍵規則: case 後必須為常數;每個 case 需以 break 結束(防止貫穿);default 處理所有不符合的情況。
switch (input)
{
case "sina":
case "google":
case "gosoa":
Console.WriteLine("www.gosoa.com.cn"); // 共用邏輯
break;
case "163":
Console.WriteLine("www.163.com");
break;
default:
Console.WriteLine("www.cnblogs.com");
break;
}
無語句的 case 會自動落入下一個有語句的 case,實現「或」邏輯。
for (int i = 0; i < 100; i++)
Console.WriteLine(i);
執行流程:初始化 → 條件判斷 → 執行本體 → 迭代運算 → 回條件判斷。
int i = 0;
while (i < 100)
{
Console.WriteLine(i);
i++;
}
先判斷條件,成立才執行本體;可能零次執行。
int i = 200;
do
{
Console.WriteLine(i); // 輸出 200
i++;
} while (i < 100);
先執行再判斷,確保本體至少執行一次。
string[] parts = { "www", "gosoa", "com", "cn" };
foreach (string part in parts)
Console.WriteLine(part);
唯讀遍歷,無法修改集合元素,語法簡潔且不易越界。
switch、for、while、foreach。foreach (string s in parts)
{
if (s == "www") continue;
Console.WriteLine(s); // 輸出 gosoa, com, cn
}