C++ switch 语句
switch 语句允许测试一个变量是否与一个值列表相等。每个值称为一个 case,并且针对每个 case 检查被切换的变量。
语法
switch 语句在 C++ 中的语法如下 -
switch(expression) { case constant-expression : statement(s); break; ///可选 case constant-expression : statement(s); break; ///可选 // 你可以有任意数量的 case 语句。 default : ///可选 statement(s); }
以下规则适用于 switch 语句 -
switch 语句中使用的 表达式 必须是整型或枚举型,或者属于类类型,且该类具有单个到整型或枚举型的转换函数。
一个 switch 语句中可以包含任意数量的 case 语句。每个 case 后面都跟有待比较的值和一个冒号。
case 的 常量表达式 必须与 switch 中的变量具有相同的数据类型,并且必须是常量或字面量。
当 switch 中的变量等于某个 case 时,该 case 后面的语句将执行,直到遇到 break 语句。
遇到 break 语句时,switch 终止,控制流跳转到 switch 语句后的下一行。
并非每个 case 都需要包含 break。如果没有出现 break,控制流将继续执行后续 case,直到遇到 break。
switch 语句可以包含可选的 default case,该 case 必须出现在 switch 的末尾。默认情况可用于在所有情况都不成立时执行任务。默认情况无需中断。
流程图

示例
#include <iostream> using namespace std; int main () { // 局部变量声明: char grade = 'D'; switch(grade) { case 'A' : cout << "Excellent!" << endl; break; case 'B' : case 'C' : cout << "Well done" << endl; break; case 'D' : cout << "You passed" << endl; break; case 'F' : cout << "Better try again" << endl; break; default : cout << "Invalid grade" << endl; } cout << "Your grade is " << grade << endl; return 0; }
这将产生以下结果 -
You passed Your grade is D