日志7
switch语句
1. 基本概念
switch - case语句是C++中的一种多分支选择语句。它根据一个表达式的值来决定执行多个分支中的哪一个分支。这个表达式的值必须是整数类型(如int、char等)或者是可以自动转换为整数类型的枚举类型。
2. 语法结构
switch (表达式) {
case 常量表达式1:
语句序列1;
break;
case 常量表达式2:
语句序列2;
break;
// 可以有更多的case分支
default:
语句序列n;
break;
}
首先计算switch后面括号内的表达式的值。
然后将这个值与每个case后面的常量表达式的值进行比较。如果找到匹配的值(即表达式的值等于某个case后的常量表达式的值),就执行该case分支中的语句序列,直到遇到break语句或者switch语句块结束。
如果没有找到匹配的case,则执行default分支中的语句序列(如果有default分支的话)。default分支是可选的。
3. 例子:根据用户输入的数字来输出对应的星期几的名称:
#include <iostream>
using namespace std;
int main() {
int day;
cout << "请输入一个数字(1 - 7)代表星期几:";
cin >> day;
switch (day) {
case 1:
cout << "星期一";
break;
case 2:
cout << "星期二";
break;
case 3:
cout << "星期三";
break;
case 4:
cout << "星期四";
break;
case 5:
cout << "星期五";
break;
case 6:
cout << "星期六";
break;
case 7:
cout << "星期日";
break;
default:
cout << "输入错误";
break;
}
return 0;
}
在这个例子中,用户输入一个数字存储在day变量中。switch语句根据day的值来决定执行哪个分支。如果day的值为1,就执行case 1分支,输出“星期一”,然后遇到break语句跳出switch语句块。如果day的值不在1 - 7的范围内,就执行default分支,输出“输入错误”。
#include <iostream>
using namespace std;
int main(){
int n;
cin>>n;
switch(n){
case 1:cout<<"set meal 1"<<endl;
break;
case 2:cout<<"set meal 2"<<endl;
break;
case 3:cout<<"set meal 3"<<endl;
break;
case 4:cout<<"set meal 4"<<endl;
break;
case 5:cout<<"set meal 5"<<endl;
break;
case 6:cout<<"set meal 6"<<endl;
break;
case 7:cout<<"set meal 7"<<endl;
break;
case 8:cout<<"set meal 8"<<endl;
break;
case 9:cout<<"set meal 9"<<endl;
break;
case 10:cout<<"set meal 10"<<endl;
break;
default:cout<<"no set meal"<<endl;
}
return 0;
}
4. 注意事项
(1)case后面的常量表达式的值必须是唯一的,不能有两个case分支的常量表达式的值相同。
(2)如果没有break语句,程序在执行完一个case分支后会继续执行下一个case分支的语句,这可能会导致意外的结果。这种情况在某些特殊场景下可以利用,比如多个case分支执行相同的操作,但通常需要谨慎使用。