用switch-case
时间: 2023-11-21 12:52:27 浏览: 108
用switch-case可以根据不同的条件执行不同的代码块。switch语句中的表达式会被求值一次,然后与每个case的常量表达式进行比较,如果匹配则执行相应的代码块。如果没有匹配的case,则执行default代码块(如果有的话)。在switch语句中,case的值必须是常量表达式,而且必须是唯一的。在执行完一个case的代码块后,如果没有break语句,程序会继续执行下一个case的代码块,直到遇到break或者switch语句结束为止。如果想在switch后面跟一个判断的条件,可以使用if语句来实现。例如:
```
switch (value) {
case 1:
// do something
break;
case 2:
// do something else
break;
default:
if (value > 2) {
// do something
} else {
// do something else
}
}
```
相关问题
分段函数可以用switch-case吗?划算吗?视频中最后的那个分段函数,真的可以用switch-case吗?
分段函数可以使用switch-case来实现,但并不是所有的分段函数都适合使用switch-case。分段函数通常是根据输入值的不同范围来执行不同的计算或操作,而switch-case通常用于根据具体的值来执行不同的操作。
如果分段函数的每个区间都有一个具体的值对应,并且这些值是离散的,那么使用switch-case是可行的。例如:
```c
int func(int x) {
switch(x) {
case 1:
return 10;
case 2:
return 20;
case 3:
return 30;
default:
return 0;
}
}
```
但是,如果分段函数的区间是连续的,或者区间范围较大,使用switch-case就不太划算了。这种情况下,使用if-else语句可能更合适:
```c
int func(int x) {
if (x >= 0 && x < 10) {
return x * 2;
} else if (x >= 10 && x < 20) {
return x * 3;
} else {
return x;
}
}
```
在视频中提到的分段函数,如果每个区间都有一个具体的值对应,并且这些值是离散的,那么使用switch-case是可行的。否则,建议使用if-else语句来实现。
用switch-case结构来写
在C++中,当你想要根据某个变量的不同取值执行不同的代码块时,可以使用`switch-case`结构。它类似于`if-else`语句链,但在这种情况下,你只需要检查一个变量(称为\"表达式\"),然后匹配预定义的\"case\"标签。下面是使用`switch-case`结构的一个简单例子,针对之前提到的评分等级分配问题:
```cpp
#include <iostream>
using namespace std;
int main() {
int score;
char grade;
cout << "请输入一个成绩(0-100): ";
cin >> score;
// 使用switch-case结构
switch (score / 10) { // 分割成10分段便于处理
case 10:
if (score >= 90) {
grade = 'A';
} else {
grade = 'F'; // 默认其他情况(如未达到及格线)
}
break;
case 9:
grade = 'A'; // 90-100分直接标记为A
break;
case 8:
grade = 'B';
break;
case 7:
grade = 'C';
break;
case 6:
grade = 'D';
break;
default:
cout << "错误!请输入0-100的整数。\n";
return 1; // 程序结束,返回值表示错误
}
cout << "该成绩的等级为: " << grade << endl;
return 0;
}
阅读全文
相关推荐















