Visual C#2005快速入門之switch語句
2006/12/27 20:09:36
某些時候,在嵌套使用if語句時,所有if語句看起來都非常相似,因為它們都在對一個完全相同的表達式進行求值,惟一的區別是每個if語句都將表達式的結果與一個不同的值進行比較。例如:
if (day == 0)
dayName = "Sunday";
else if (day == 1)
dayName = "Monday";
else if (day == 2)
dayName = "Tuesday";
else if (day == 3)
...
else
dayName = "Unknown";
在這些情況下,通常需要將嵌套的if語句改寫為一個switch語句,使程序更有效、更容易懂。
理解switch語句的語法
switch語句的語法如下(switch,case和default是關鍵字):
switch ( controllingExpression )
{
case constantExpression :
statements
break;
case constantExpression :
statements
break;
...
default :
statements
break;
}
controllingExpression(控制表達式)只求值一次。然后,從其constantExpression值等于controllingExpression值的case開始,它下方的所有語句都會一直運行,直到遇到一個break為止。隨后,switch語句將結束,程序從switch結束大括號之后的第一個語句繼續執行,并忽略其他case。
假如任何一個constantExpression值都不等于controllingExpression的值,就運行可選標簽default之下的語句。
注意 假如controllingExpression的值和任何一個case標簽都不匹配,同時沒有發現一個default標簽,程序會跳過整個switch語句,從它的結束大括號之后的第一個語句繼續執行。
例如,前面的嵌套if語句可以改寫為以下switch語句:
switch (day)
{
case 0 :
dayName = "Sunday";
break;
case 1 :
dayName = "Monday";
break;
case 2 :
dayName = "Tuesday";
break;
...
default :
dayName = "Unknown";
break;
}
遵守switch語句規則
switch語句非常有用,但在使用時必須謹慎。所寫的任何switch語句都必須遵循以下規則:
只能針對基本數據類型使用switch,這些類型包括int和string等待。對于其他類型,則必須使用if語句。
case標簽必須是常量表達式(constantExpression),如42或者"42"。如果需要在運行時計算case標簽的值,必須使用if語句。
case標簽必須是惟一性的表達式;也就是說,不允許兩個case具有相同的值。
可以連續寫下一系列case標簽(中間不能間插額外的語句),從而指定自己希望在多種情況下都運行相同的語句。如果像這樣寫,那么最后一個case標簽之后的代碼將適用于所有case。然而,假如一個標簽關聯了一個或多個語句,又沒有使用break來跳出,那么執行就不能貫穿到后續的標簽,而且編譯器會報告一個錯誤。例如:
switch (trumps)
{
case Hearts :
case Diamonds : // 允許貫穿 — 標簽之間無額外代碼
color = "Red"; // 針對Hearts和Diamonds這兩種情況都會執行的代碼
break;
case Clubs :
color = "Black";
case Spades : // 出錯 — 標簽之間有額外代碼,而且沒有使用break來跳出
color = "Black";
break;
}
注意 break語句是用來阻止貫穿的最常見的方式,但也可以用一個return語句或者一個throw語句來替代它。throw語句的詳情將在以后討論。
不準貫穿
由于C#存在不準貫穿(fall through)的規則,所以可以自由地安排一個switch語句的各個區域,而不至于影響其含義(其中包括default標簽,它傳統意義上是最后一個標簽,但并非一定如此)。
C和C++程序員要注意的是,在使用C#編程時,必須為switch語句
下一頁
返回列表
返回首頁
主站蜘蛛池模板:
黄色一级毛片看一级毛片|
啊~怎么又加了一根手指|
japanese国产在线看|
日本特黄特色aaa大片免费|
亚洲国产综合精品中文第一区|
精品乱子伦一区二区三区|
国产午夜激无码av毛片|
窝窝视频成人影院午夜在线|
在线观看国产成人av片|
一本色道久久综合狠狠躁篇|
日本动漫打扑克动画片樱花动漫|
亚洲专区欧美专区|
正在播放pppd|
你懂的在线播放|
精品福利视频一区二区三区|
国产免费无码av片在线观看不卡|
五月婷婷一区二区|
国产精品美女久久久久AV福利|
eeuss在线兵区免费观看|
成人影院久久久久久影院|
久久亚洲精品人成综合网|
极品粉嫩嫩模大尺度无码视频|
亚洲欧美成aⅴ人在线观看|
亚洲一区二区三区91|
色老头永久免费网站|
国产成人黄色小说|
一级一级女人真片|
国产视频一区二区三区四区
|
国产福利在线小视频|
91久久青青草原线免费|
天堂网www中文在线|
一本色道久久88—综合亚洲精品
|
全彩无翼口工漫画大全3d|
香焦视频在线观看黄|
国产精品久久久久久久伊一|
A毛片毛片看免费|
少妇人妻在线视频|
两根手指就抖成这样了朝俞|
新婚张燕被两个局长|
久久国产免费观看精品3|
最强yin女系统白雪
|