| 订阅 | 在线投稿
分享
 
 
 

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- 王朝网络 版权所有