switch语句的“不准遍历”

文章作者 100test 发表时间 2007:09:11 12:39:33
来源 100Test.Com百考试题网


  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。

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

  C#switch语句与C/C 另一个不同点是C#同VB一样把字符串常量当作常量表达式来使用,但C/C 却不支持。所以在C#中,case “OK”:这样的形式也是支持的。



相关文章


陷阱技术探秘──动态汉化Windows技术的分析
非ROOT用户能访问另一个非ROOT用户的文件
奇怪的返回:ask:ask
Linux操作系统下C开发环境的构成与安装
switch语句的“不准遍历”
教你如何在C语言使用位运算实现循环移位
C程序实现汉字内码与GB码
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛