c++ 关于 switch 判断语句
switch 语句
一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。
switch 语法
switch(expression){
case constant-expression :
statement(s);
break; // 可选的
case constant-expression :
statement(s);
break; // 可选的
// 您可以有任意数量的 case 语句
default : // 可选的
statement(s);
}
- 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
- 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
- 不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续后续的 case,直到遇到 break 为止。
实例
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 局部变量声明
char ch = 'C';
switch(ch)
{
case 'A':
cout << "很好" << endl;
break;
case 'B':
cout << "不错" << endl;
break;
case 'C':
cout << "通过" << endl;
break;
case 'D':
cout << "未通过" << endl;
default :
cout << "无效的成绩" << endl;
}
// 无论 switch 是否执行,该语句都会执行
cout << "你的成绩是" << ch << endl;
return 0;
}
以上代码执行后结果为
通过
你的成绩是:C
嵌套 switch 语句
您可以把一个 switch 作为一个外部 switch 的语句序列的一部分,即可以在一个 switch 语句内使用另一个 switch 语句。
即使内部和部 switch 的 case 常量包含共同的值,也没有矛盾。
C++ 中的 switch 语句允许至少 256 个嵌套层次。
嵌套 switch 语法
switch(ch1) {
case 'A':
cout << "这个 A 是外部 switch 的一部分";
switch(ch2) {
case 'A':
cout << "这个 A 是内部 switch 的一部分";
break;
case 'B': // 内部 B case 代码
}
break;
case 'B': // 外部 B case 代码
}
实例
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 局部变量声明
int a = 1;
int b = 2;
switch(a)
{
case 1:
cout << "这是外部 switch 的部分" << endl;
switch(b)
{
case 2:
cout << "这是内部 switch 的部分" << endl;
}
}
// 无论 switch语句 是否执行,该语句都会执行
cout << "a 的值为" << a << endl;
cout << "b 的值为" << b << endl;
return 0;
}
以上代码执行后结果为
这是外部 switch 的部分
这是内部 switch 的部分
a 的值为1
b 的值为2