| 導購 | 订阅 | 在线投稿
分享
 
 
 

switch語句的「不准遍曆」

來源:互聯網  2008-06-01 01:14:42  評論

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」:這樣的形式也是支持的。

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」:這樣的形式也是支持的。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有