第六章 控制语句(二)

2014-11-23 20:25:23 · 作者: · 浏览: 26
) return;
11: int nDays = 0;
12:
13: switch (nMonth)
14: {
15: case 2: nDays = 28; break;
16: case 4:
17: case 6:
18: case 9:
19: case 11: nDays = 30; break;
20: default: nDays = 31;
21: }
22: Console.WriteLine("{0} days in this month",nDays);
23: }
24: }


switch 语段包含于第13~21行。对于C程序员,这看起来非常相似,因为它不使用break语句。因此,存在着一个更具
生命力的重要差别。你必须加上一个break语句(或一个不同的跳转语句),因为编译器会提醒,不允许直达下一部分。
何谓直达?在C(和C++)中,忽略break并且按以下编写代码是完全合法的:
nVar = 1
switch (nVar)
{
case 1:
DoSomething();
case 2:
DoMore();
}

在这个例子中,在执行了第一个case语句的代码后,将直接执行到其它case标签的代码,直到一个break语句退出
switch语段为止。尽管有时这是一个强大的功能,但它更经常地产生难于发现的缺陷。
可如果你想执行其它