switch語句的「不准遍曆」

C和C++語言答應switch語句中case標簽後不出現break語句從而可以繼續執行下面case後的語句。但是這往往由于程序員忘記寫break語句而成爲一個難以發現的漏洞,所以C#不答應這樣,它要求每個標簽項後使用break語句或跳轉語句goto,即不答應從一個case自動遍曆到其他case,否則編譯時報錯,即使是default語句後也不例外。

這個特定決定了三個特點:

a)我們可以任意排列switch語句中的case項而不會影響switch語句的功能。

b)假如要像c/c++那樣在執行完後繼續遍曆其他的語句,只要在case語句後加上以下兩條跳轉語句中的一條即可:goto case label;goto default。

3)除了goto外,throw和return也可以。

C#switch語句與C/C++另一個不同點是C#同VB一樣把字符串常量當作常量表達式來使用,但C/C++卻不支持。所以在C#中,case 「OK」:這樣的形式也是支持的。

 
switch語句的“不准遍曆”
switch語句的“不准遍曆” switch語句的“不准遍曆” C和C++語言允許switch語句中case標簽後不出現break語句從而可以繼續執行下面case後的語句。但是這往往由于程序員忘記寫break語句而成爲一個難以發現的...查看完整版>>switch語句的“不准遍曆”
 
switch語句的“不准遍曆”
C和C++語言允許switch語句中case標簽後不出現break語句從而可以繼續執行下面case後的語句。但是這往往由于程序員忘記寫break語句而成爲一個難以發現的漏洞,所以C#不允許這樣,它要求每個標簽項後使用break語句或...查看完整版>>switch語句的“不准遍曆”
 
switch 語句
當指定的表達式的值與某個標簽匹配時,即執行相應的一個或多個語句。switch (eXPression) { case label : statementlist case label : statementlist ... default : statementlist} 參數e...查看完整版>>switch 語句
 
關于C#中switch語句的一點注意
  大家肯定對switch語句並不陌生,它能夠讓程序根據控制表達式的值,從多個動作中作出選擇(從邏輯過程看,和多分支語句if-else有些相似)。在C++和java中也有這一語句,不過在C#中,這一語句則有了些變化。先看下邊...查看完整版>>關于C#中switch語句的一點注意
 
Visual C#2005快速入門之switch語句
  某些時候,在嵌套使用if語句時,所有if語句看起來都非常相似,因爲它們都在對一個完全相同的表達式進行求值,惟一的區別是每個if語句都將表達式的結果與一個不同的值進行比較。例如:if (day == 0) dayName = "...查看完整版>>Visual C#2005快速入門之switch語句