C++ switch多个case相同时,如何简化代码
时间: 2023-06-03 21:04:36 浏览: 73
可以将多个 case 值合并到一个 case 中,使用逗号隔开即可。例如:
```C
switch (fruit) {
case APPLE:
case PEAR:
case BANANA: {
printf("This is a fruit.\n");
break;
}
case CUCUMBER:
case TOMATO: {
printf("This is a vegetable.\n");
break;
}
default: {
printf("Unknown type.\n");
break;
}
}
```
在上面的例子中,当 `fruit` 取值为 `APPLE`、`PEAR` 或者 `BANANA` 时,会执行第一个 case,输出 "This is a fruit.";当 `fruit` 取值为 `CUCUMBER` 或者 `TOMATO` 时,会执行第二个 case,输出 "This is a vegetable.";如果 `fruit` 不在这些值之内,则会执行 default 中的代码,输出 "Unknown type."。
相关问题
c++ switch case
C++中的switch case语句是一种用于多分支选择的控制结构。它允许根据表达式的值选择不同的执行路径。以下是C++中switch case语句的基本语法:
```cpp
switch (expression) {
case value1:
// 当expression的值等于value1时执行的代码
break;
case value2:
// 当expression的值等于value2时执行的代码
break;
case value3:
// 当expression的值等于value3时执行的代码
break;
// 可以有更多的case语句
default:
// 当expression的值与任何case都不匹配时执行的代码
break;
}
```
在switch后面的括号中,我们需要提供一个表达式,它的值将与每个case语句中的值进行比较。当表达式的值与某个case语句中的值匹配时,将执行该case语句后面的代码块。如果没有匹配的case语句,可以使用default关键字指定一个默认的执行路径。
需要注意的是,在每个case语句的末尾需要使用break关键字来终止当前case的执行,否则程序将会继续执行下一个case语句,这可能导致意外的结果。
如果不希望在每个case语句末尾使用break关键字,可以让多个case语句共享同一个代码块。例如:
```cpp
switch (expression) {
case value1:
case value2:
// 当expression的值等于value1或value2时执行的代码
break;
case value3:
// 当expression的值等于value3时执行的代码
break;
default:
// 当expression的值与任何case都不匹配时执行的代码
break;
}
```
这样,当expression的值等于value1或value2时,将会执行共享的代码块。
switch多个case返回同一个值
在一个 `switch` 语句中,如果多个 `case` 需要返回同一个值,可以使用 `break` 语句来终止每个 `case` 的执行。例如:
```c++
switch (x) {
case 1:
case 2:
case 3:
cout << "x is between 1 and 3" << endl;
break;
case 4:
cout << "x is 4" << endl;
break;
default:
cout << "x is not 1, 2, 3, or 4" << endl;
break;
}
```
在这个例子中,如果 `x` 的值为 1、2 或 3,都将输出 `"x is between 1 and 3"`,因为这三个 `case` 都会执行相同的代码,并且通过 `break` 终止执行。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)