1)什麼是switch語句?
switch語句能分支判斷選擇條件,並執行相應條件下的代碼。switch分支語句使得多條件的判斷變得更加容易,偶爾還用於替代複雜的if-else if-else……結構。
2)爲什麼使用switch語句?
上面提到過,switch有時候用於替換複雜的if-else if-else if……
switch讓程序根據表達式的值,選擇一個動作執行。可能可以發現switch從邏輯上來說與多分支語句if-else有些相似,但比if-else有更好的可讀性。畢竟if-else嵌套太多,對閱讀代碼也是一種折磨。
3)如何使用switch語句?
直接通過一個例子來說明switch的作用:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("請從21到23選擇一個數字輸入:");
int num = Convert.ToInt32(Console.ReadLine());
switch (num)
{
case 21:
Console.WriteLine("你輸入的肯定是21");
break;
case 22:
Console.WriteLine("你輸入的肯定是22");
break;
case 23:
Console.WriteLine("你輸入的肯定是23");
break;
}
Console.ReadKey();
}
}
本代碼中,用戶先錄入一個值,並被num變量接收。switch根據num的值選擇一個滿足條件的執行,如果num的值是22,則switch會選擇執行 case 22後面的代碼,然後執行break;並退出switch結構。如果用戶輸入的值是21或23,同理。但用戶輸入的是21到23之外的其他值,則因爲switch內沒有任何滿足的條件,因此並沒有任何結果。實際上,switch還可以設定一個特殊情況的分支條件,比如不滿足21到23的所有數字,可以把代碼修改爲:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("請從21到23選擇一個數字輸入:");
int num = Convert.ToInt32(Console.ReadLine());
switch (num)
{
case 21:
Console.WriteLine("你輸入的肯定是21");
break;
case 22:
Console.WriteLine("你輸入的肯定是22");
break;
case 23:
Console.WriteLine("你輸入的肯定是23");
break;
default :
Console.WriteLine("你輸入的肯定不是21到23");
break;
}
Console.ReadKey();
}
}
只是在switch分支的最後面增加了一個default的判斷條件,表示當前面的都不滿足條件時,就執行這一句。switch還有一種用法:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("請輸入今天的星期數:");
int num = Convert.ToInt32(Console.ReadLine());
switch (num)
{
case 1:
Console.WriteLine("今天週一,上班");
break;
case 2:
Console.WriteLine("今天週二,放假一天");
break;
case 3:
case 4:
case 5:
Console.WriteLine("今天是週三、週四或週五,全天都不休息");
break;
case 6:
case 7:
Console.WriteLine("今天是週末,出遊");
break;
default:
Console.WriteLine("你輸入的不是1到7嗎?");
break;
}
Console.ReadKey();
}
}
在這個代碼中,有一些case下面並沒有break;語句,比如case 3、case 4和case 5連在了一起,表示如果num的值是3、4或者5,都執行case 5:後面這一句。