1 不是每一个 case 都需要包含 break。如果 case 语句为空,则可以不包含 break,控制流将会继续后续的 case,直到遇到break为止。
char grade = 'C'; switch (grade) { case 'A': case 'B': case 'C': Console.WriteLine("CCC"); break; case 'D': Console.WriteLine("DDD"); break; default: Console.WriteLine("无效的成绩"); break; }
无论grad =A或B或C都输出CCC
2 如果 case 语句中有处理语句,则必须包含 break 或其他跳转语句。
char grade = 'A'; switch (grade) { case 'A': Console.WriteLine("AAA"); case 'B': case 'C': Console.WriteLine("CCC"); break; case 'D': Console.WriteLine("DDD"); break; default: Console.WriteLine("无效的成绩"); break; }
提示错误:控制不能从一个case标签("case 'A':")贯穿到另一个case标签
3 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。