C++ switch

C++ Switch 语句

使用 switch 语句可以选择要执行的多个代码块之一。

语法

switch(expression) {  
  case x:  
    // 代码块  
    break;  
  case y:  
    // 代码块  
    break;  
  default:  
    // 代码块  
}

它是这样工作的:

  • switch 表达式被评估一次。
  • 表达式的值与每个 case 的值进行比较。
  • 如果找到匹配项,则执行相关联的代码块。
  • breakdefault 关键字是可选的,将在本章后面介绍。

下面的例子使用工作日编号来计算工作日名称:

实例

int day = 4;
switch (day) {
  case 1:
    cout << "Monday";
    break;
  case 2:
    cout << "Tuesday";
    break;
  case 3:
    cout << "Wednesday";
    break;
  case 4:
    cout << "Thursday";
    break;
  case 5:
    cout << "Friday";
    break;
  case 6:
    cout << "Saturday";
    break;
  case 7:
    cout << "Sunday";
    break;
}
// 删除 "Thursday" (day 4)

亲自试一试

break 关键字

当 C++ 到达 break 关键字时,它会跳出 switch 块。

这将停止块内更多代码和 case 测试的执行。

当找到匹配项并且完成任务时,就是休息的时候了。无需进行更多测试。

提示:break 可以节省大量执行时间,因为它会“忽略” switch 块中剩余的所有代码的执行。

default 关键字

default 关键字指定在没有 case 匹配时要运行的某些代码:

实例

int day = 4;
switch (day) {
  case 6:
    cout << "今天是星期六";
    break;
  case 7:
    cout << "今天是星期日";
    break;
  default:
    cout << "期待周末";
}
// 输出 "期待周末"

亲自试一试

在这个例子中,由于 day 的值是 4,与任何 case 都不匹配,因此执行 default 代码块。如果删除 default 部分并且 day 的值不匹配任何 case,则 switch 语句将不会输出任何内容。