switch-case如何用
时间: 2024-09-28 13:11:06 浏览: 36
在Python中,由于缺乏原生的`switch-case`(也叫`case-based`)结构,我们可以利用字典(`dict`)来模拟类似的功能。这是一种常用的替代方案,通过将不同的情况映射到不同的函数或返回值上。下面是一个简单的例子:
```python
def switch_case(value):
cases = {
'option1': lambda: "执行option1",
'option2': lambda: "执行option2",
# 更多选项...
}
function_to_call = cases.get(value, None)
if function_to_call is not None:
return function_to_call()
else:
return f"未知选项: {value}"
# 调用示例
print(switch_case('option1')) # 输出 "执行option1"
```
在这个例子中,`switch_case`函数接受一个`value`作为输入,查找对应的键(这里是字符串`'option1'`、`'option2'`等),如果找到则执行相应的lambda表达式,否则返回一个默认信息。
相关问题
JS中switch-case使用方法
switch-case语句是一种多分支的条件语句,可以根据不同的条件执行不同的代码块。其基本语法为:
```
switch (expression) {
case value1:
// 在expression等于value1时执行的代码
break;
case value2:
// 在expression等于value2时执行的代码
break;
default:
// 在expression不等于任何一个case时执行的代码
}
```
其中,expression为需要进行比较的表达式,value1、value2等为比较的值,可以有多个case语句,也可以有一个default语句,表示当expression不等于任何一个case值时执行的代码。
需要注意的是,每个case语句必须以break结尾,否则会继续执行下一个case语句。如果不想在某个case语句中使用break语句,可以使用return、throw或continue语句代替。
switch-case用字符串去判断
在C++11及以上版本中可以使用`std::unordered_map`结合lambda表达式来实现类似于switch-case的字符串判断。比如下面这个例子:
```
#include <iostream>
#include <unordered_map>
int main() {
std::string str = "case2";
std::unordered_map<std::string, int> map{
{"case1", 1},
{"case2", 2},
{"case3", 3}
};
std::cout << map[str] << std::endl;
return 0;
}
```
这个程序会输出`2`,因为`str`等于`"case2"`,而`map`中`"case2"`对应的值为`2`。
阅读全文