C/C++ - switch
在C/C++语言中, switch
语句的通用格式为
1: switch (int_expr) 2: { 3: case label1: statement(s) 4: case label2: statement(s) 5: ... 6: default: statement(s) 7: }
顾名思义, int_expr
必须是一个结果为整数值的表达式。另外,每个标签都必须是整数常量表达式。最常见的标签是 int
或 char
常量(如1或‘a’),也可以是枚举常量。C++中的 case
标签只是行标签,而不是选项之间的界限。也就是说,程序跳到 switch
中特定代码后,将依次执行之后的所有语句,除非有明确的其他指示。程序不会执行到下一个 case
处自动停止,要让程序执行完一组特定语句后停止,必须使用 break
语句。这将导致程序跳到 switch
后面的语句处执行。
关于将枚举量用作标签,通常, cin
无法识别枚举类型(它不知道程序员是如何定义它们的),因此程序要求用户选择选项时输入整数。当 switch
语句将 int
值和枚举量标签进行比较时,将枚举量提升为 int
。另外,在 while
循环测试条件中,也会将枚举量提升为 int
类型。