switch 语句
switch 和 case 语句用来表达数量较多的分支条件,语法如下:
cpp
switch(表达式)
{
case常量表达式1:语句块1
case常量表达式2:语句块2
......
default:语句块n
}
建议
switch 语句可以包含多个 case 条件,case 后面的常量表达式必须各不相同。
进入 switch 语句后,先计算表达式的值,然后逐一匹配每个 case 的常量表达式,当匹配成功时,就执行对应的语句块,然后顺序执行之后的所有语句,直到整个 switch 语句结束。
如果遇到一个 break 语句,则中止 switch 语句的执行。
如果表达式与所有的 case 都不能成功匹配,则从 default 后面的语句块开始执行,直到 switch 语句结束。
警告
当和某个 case 常量表达式匹配成功后,程序会执行该 case 的语句或语句块,以及后面所有分支的语句。
switch 语句示例
cpp
#include <iostream>
using namespace std;
int main(){
int a;
cout << "输入1-7之间的数字:";
cin >> a;
switch(a)
{
case 1:
cout << "Monday " << endl;
case 2:
cout << "Tuesday " << endl;
case 3:
cout << "Wednesday " << endl;
case 4:
cout << "Thursday " << endl;
case 5:
cout << "Friday " << endl;
case 6:
cout << "Saturday " << endl;
case 7:
cout << "Sunday " << endl;
default:
cout << "error " << endl;
}
return 0;
}
运行结果:
cpp
输入1-7之间的数字:3↙
Wednesday
Thursday
Friday
Saturday
Sunday
error
输入 3 后,与第三个 case 匹配成功后,执行第三个分支以及后面的所有语句。
但如果希望只执行第三个分支,输出“Wednesday”,而跳过后面的其他输出,那我们必须要在每个 case 的语句最后添加 break 语句。
break 是专门用于跳出类似 switch 的分支和其他循环结构的语句。
所谓“跳出”,是指一旦遇到 break,就不再执行 switch 中的其他语句,包括当前分支中的语句和其他分支中的语句。
我们使用 break 修改上面的代码后:
参考程序
cpp
#include <iostream>
using namespace std;
int main()
{
int a;
cout << "输入1-7之间的数字:";
cin >> a;
switch(a)
{
case 1:
cout << "Monday " << endl;
break;
case 2:
cout << "Tuesday " << endl;
break;
case 3:
cout << "Wednesday " << endl;
break;
case 4:
cout << "Thursday " << endl;
break;
case 5:
cout << "Friday " << endl;
break;
case 6:
cout << "Saturday " << endl;
break;
case 7:
cout << "Sunday " << endl;
break;
default:
cout << "error " << endl;
break;
}
return 0;
}
运行结果:
c
输入1-7之间的数字:3↙
Wednesday
default 负责处理不符合任何 case 的情况,而且 switch 语句中只能有一个 default 分支,它可以出现在开头或者最后,也可以出现在两个 case 的中间。