switch-case用字符串去判断
时间: 2023-11-23 07:04:28 浏览: 281
在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`。
相关问题
switch case判断字符串
在C++中,switch case语句只能用于判断整数类型,不能直接用于字符串的判断。不过可以通过字符串的哈希值来实现类似于字符串的switch case判断。具体实现可以使用 std::hash 函数来获取字符串的哈希值,然后再根据哈希值进行判断,实现代码如下:
```c++
#include <iostream>
#include <functional>
int main() {
std::string str = "hello";
std::size_t hash = std::hash<std::string>{}(str);
switch (hash) {
case std::hash<std::string>{}("hello"):
std::cout << "Hello World!" << std::endl;
break;
case std::hash<std::string>{}("world"):
std::cout << "Hello World!" << std::endl;
break;
default:
std::cout << "Unknown string." << std::endl;
break;
}
return 0;
}
```
值得注意的是,由于哈希值可能会发生冲突,因此在实际使用过程中需要进行严格的测试和验证,确保程序的正确性。
switchcase 判断字符串
在JavaScript中,switch case语句可以用于判断字符串。但是需要注意的是,switch case语句在比较时使用的是全等号“===”,因此需要确保每个case后面的字符串与待比较的字符串类型和值都完全相同。下面是一个例子:
```
switch(str) {
case "apple":
// do something
break;
case "banana":
// do something
break;
default:
// do something
}
```
在这个例子中,如果str的值为"apple"或"banana",则会执行相应的代码块。如果str的值不是这两个字符串中的任何一个,则会执行default代码块。需要注意的是,每个case后面的代码块必须以break语句结束,否则会继续执行下一个case的代码块。
阅读全文