) 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语段为止。尽管有时这是一个强大的功能,但它更经常地产生难于发现的缺陷。 可如果你想执行其它
|