C++ switch 语句



switch 语句允许将变量与其值列表进行相等性测试。每个值称为一个 case,系统会检查正在切换的变量的每个 case。

语法

C++ 中 switch 语句的语法如下:

switch(expression) {
   case constant-expression  :
      statement(s);
      break; //optional
   case constant-expression  :
      statement(s);
      break; //optional
  
   // you can have any number of case statements.
   default : //Optional
      statement(s);
}

以下规则适用于 switch 语句:

  • switch 语句中使用的表达式必须是整型或枚举类型,或者是一个类类型(该类具有单个转换为整型或枚举类型的转换函数)。

  • 在一个 switch 中可以有任意数量的 case 语句。每个 case 后面跟着要比较的值和一个冒号。

  • case 的常量表达式必须与 switch 中变量的数据类型相同,并且必须是常量或字面量。

  • 当正在切换的变量等于某个 case 时,该 case 后面的语句将执行,直到遇到break 语句。

  • 遇到 break 语句时,switch 终止,控制流跳转到 switch 语句后面的下一行。

  • 并非每个 case 都需要包含 break。如果没有 break,控制流将贯穿后续的 case,直到遇到 break。

  • switch 语句可以有一个可选的default case,它必须出现在 switch 的末尾。default case 可用于在没有 case 为 true 时执行任务。default case 中不需要 break。

流程图

C++ switch statement

示例

#include <iostream>
using namespace std;
 
int main () {
   // local variable declaration:
   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
广告
© . All rights reserved.