位置:首页 > 高级语言 > C++在线教程 > C++ switch语句

C++ switch语句

switch语句可以让一个变量对值的列表平等进行测试。每个值被称为一个的情况(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语句。每一种情况后的值进行比较,以及一个冒号。

  • 常量表达的情况下,必须是相同的数据类型,在switch的变量,它必须是一个常量或文字。

  • 当进行切换的变量上等于的情况下,以下这种情况下,语句将执行,直到break语句为止。

  • 当达到一个break语句,开关终止,并且控制流跳转到下switch语句的下一行。

  • 不是每个case需要包含一个break。如果未出现break,控制流都将落空后续case语句,直到break为止。

  • switch语句可以有一个可选默认case,它必须出现在switch结束。缺省情况下,可用于执行任务时没有的情况下是true。需要在默认情况下不用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