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中的变量具有相同的数据类型,并且必须是一个常量或字面值。
-
当被switch的变量等于一个case时,跟随该case的语句将执行,直到遇到break语句。
-
当遇到break语句时,switch终止,控制流跳到switch语句后面的下一行。
-
不是每个case都需要包含break。如果没有break出现,控制流会顺序执行后续的case,直到遇到break。
-
switch语句可以有一个可选的default case,该case必须出现在switch的最后。默认情况下可以执行一个任务,当没有任何case为真时。在默认情况下不需要使用break。
流程图
示例
#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