switch 陳述式為多重選擇的控制結構
通常我們習慣針對三個以上多條件使用 switch 陳述式來替代 if-else 的方式
透過將程式控制權轉移到主體內其中一個 case 陳述式的方式來處理
如果沒有符合參數值的 case 運算式,程式控制權會轉移到選擇性 default 標籤隨後的陳述式。如果沒有 default 標記,程式控制權就會轉移到 switch 之外。
下面範例將會印出 Case 2 字樣
int c = 2;
switch (c)
{
case 1:
Response.Write("Case 1");
break;
case 2:
Response.Write("Case 2");
break;
default:
Response.Write("Default Case");
break;
}
下面範例將會印出 Default Case 字樣
int c = 5;
switch (c)
{
case 1:
Response.Write("Case 1");
break;
case 2:
Response.Write("Case 2");
break;
default:
Response.Write("Default Case");
break;
}
在前面的範例中,使用了整數類資料型別變數,當然也可以使用字串變數或其它資料型別,例如下面的範例會印出 Case 1 字樣
string c = "1"
switch (c)
{
case "1":
Response.Write("Case 1");
break;
case "2":
Response.Write("Case 2");
break;
default:
Response.Write("Default Case");
break;
}
下列範例來判斷特定日期是週末、工作週的第一天、工作週的最後一天,還是工作週的中間一天
switch (DateTime.Now.DayOfWeek)
{
case DayOfWeek.Sunday:
case DayOfWeek.Saturday:
Response.Write("今天是週末");
break;
case DayOfWeek.Monday:
Response.Write("今天是星期一,工作週的第一天");
break;
case DayOfWeek.Friday:
Response.Write("今天是星期五,工作週的最後一天");
break;
default:
Response.Write("今天是工作週的中間一天");
break;
}
上面範例 case DayOfWeek.Sunday: 並沒有該執行的區塊與 break; ,則會與下一項 case 執行相同的程式區塊 (即和 case DayOfWeek.Saturday: 相同)