一、switch-case语句基本用法
int choice = 2;
switch (choice) {
case 1:
cout << "选择1" << endl;
break;
case 2:
cout << "选择2" << endl;
break;
case 3:
cout << "选择3" << endl;
break;
default:
cout << "其他选择" << endl;
}
在上面的例子中,首先定义一个变量choice,然后根据choice的值进入不同的case分支。如果没有匹配的case,则执行default分支。
二、注意事项
1. 类型限制:
switch表达式的类型只能是整数类型(如int、char等)、枚举类型或者可以转换为整数类型的类型。
例如,不能使用float、double等浮点类型作为`switch`表达式。
2. 不要忘记break语句:
在每个case分支的末尾,通常需要使用break语句来防止程序继续执行下一个case分支。
如果忘记添加break语句,程序会继续执行下一个case分支,直到遇到break或者switch语句结束。
3. default分支不是必需的:
如果没有default分支,并且switch表达式的值与所有的case都不匹配,那么程序将不执行任何case分支中的代码。
4. 常量表达式:
case后面的表达式必须是常量表达式,即编译时可以确定的值(不能使用变量作为case后面的表达式)。
5. +作用域:
在switch语句中声明的变量的作用域仅限于该switch语句。
如果在一个case分支中声明了一个变量,那么这个变量在其他case分支中是不可见的。
6. 嵌套switch语句:
可以在一个switch语句中嵌套另一个switch语句,但代码会比较复杂。
7. 性能方面的考虑:
大多数情况下,使用if-else语句可能比switch-case语句更高效,特别是当条件比较复杂或者需要进行范围判断时。