case语句使用有返回值的函数
时间: 2024-02-20 20:02:08 浏览: 62
在 `switch case` 块中,我们可以使用返回值的函数作为 `case` 的值,但需要注意以下几点:
1. 函数的返回值类型必须与 `switch` 中表达式的类型相同或可以隐式转换为相同类型。
2. 函数的返回值必须是一个常量表达式,即在编译时就能计算出来的值。
3. `case` 块中不能使用变量作为值,因为 `case` 值必须是常量表达式。
下面是一个使用有返回值的函数作为 `case` 值的示例:
```C++
#include <iostream>
int add(int a, int b) {
return a + b;
}
int main() {
int x = 1;
switch (x) {
case add(1, 2):
std::cout << "x is 3";
break;
case add(2, 3):
std::cout << "x is 5";
break;
default:
std::cout << "x is neither 3 nor 5";
break;
}
return 0;
}
```
在上面的示例中,`add` 函数返回的值可以作为 `case` 的值,因为它是一个常量表达式。当 `x` 的值为 1 时,会执行第一个 `case` 块中的代码,输出 `x is 3`。如果 `x` 的值为 2,则会执行第二个 `case` 块中的代码,输出 `x is 5`。如果 `x` 的值既不是 1 也不是 2,则会执行 `default` 块中的代码,输出 `x is neither 3 nor 5`。
阅读全文