switch语句的“不准遍历”
而c++语言允许在switch语句中的case标记后没有break语句,以便case后的后续语句可以继续执行。但是,这往往是一个很难发现的漏洞,因为程序员忘记写break语句,所以C #不允许这样做。它要求在每个标签项后使用break语句或jump语句goto,即不允许从一个case自动遍历到其他case,否则编译时会报错,即使在default语句后也是如此。
这种特异性决定了三个特征:
a)我们可以在不影响switch语句功能的情况下,任意排列switch语句中的case项。
b)如果想像c/c++一样执行后继续遍历其他语句,只需在case语句后添加以下两个跳转语句之一:goto case label;转到默认值.
c)除了goto,还可以使用throw和return。
C # switch语句和C/C++的另一个区别是,C #像VB一样使用字符串常量作为常量表达式,而C/C++不支持。所以在C #中,case“OK”:也支持这种形式。
0条评论