关于swtich的Case分支必须要用break结束的问题。
在switch的每一个case分支中都需要加上break来退出switch,这是因为“当某个标签和switch的表达式值吻合时,该case标签之后的所有case标签也都会执行,除非我们明确使用break来结束执行动作。”(候捷《Essential C++》简体中文版P19)
关于为什么要把switch语句涉及成这个样子,《Essential C++》举了这样一个例子:
switch(next_char)
{
case 'a':case 'A':
case 'e':case 'E':
case 'i':case 'I':
case 'o':case 'O':
case 'u':case 'U':
++vowel_cnt;
break;
//...
}
但是书中没有讲解这个例子,我看不明白这个例子怎么能说明switch设计成这个样子的理由,哪位能给我讲一下吗?谢谢。