c++11 switch
时间: 2023-11-21 22:58:04 浏览: 32
C++11中的switch语句可以使用字符串作为case标签,这是一个非常方便的功能。下面是一个使用C++11 switch语句的例子:
```cpp
#include <iostream>
#include <string>
int main()
{
std::string str = "first";
switch(str_hash(str))
{
case "first"_hash:
std::cout << "1st one" << std::endl;
break;
case "second"_hash:
std::cout << "2nd one" << std::endl;
break;
case "third"_hash:
std::cout << "3rd one" << std::endl;
break;
default:
std::cout << "Default..." << std::endl;
break;
}
return 0;
}
```
需要注意的是,使用字符串作为case标签需要先定义一个字符串哈希函数,将字符串转换为整数,以便在switch语句中使用。另外,需要使用后缀"_hash"来表示哈希值。
相关问题
c++中switch
switch语句是C语言中的一种流程控制结构,用于根据不同的表达式值执行不同的代码块。它的语法如下:
```c
switch (expression) {
case constant1:
// code block 1
break;
case constant2:
// code block 2
break;
// more cases...
default:
// default code block
}
```
在上面的代码中,expression是要进行比较的表达式,它的值会与各个case后的constant进行比较。如果expression的值与某个case后constant的值相等,就会执行对应的code block,并且执行完该code block后会遇到break语句,跳出整个switch语句。如果expression的值与所有case后constant的值都不相等,则会执行default code block。
请注意,每个case后的constant必须是常量表达式,不能是变量。
希望这能解答你的问题!如果还有其他问题,请随时提问。
C++税收switch语句
C++税收switch语句是一个根据收入等级计算税费的程序。根据收入的不同等级,程序会使用不同的税率计算税费。以下是程序的具体实现:
```
int main() {
int a,b;
float c=0;
printf("a=");
scanf("%d",&a);
b= (a-801) /400;
switch(b) {
case 0:
c=(a-800)*0.05;
break;
case 1:
case 2:
c=400*0.05;
c= (a-1200)*0.08;
break;
default:
c=400*0.05;
c= (a-1200)*0.08;
c= (a-2000)*0.2;
}
printf("%d,0.2f",a,c);
return 0 ;
}
```
在这个程序中,首先用户需要输入收入a。然后,程序会根据a的值计算出收入等级b。接下来,程序会使用switch语句根据收入等级b计算税费c。最后,程序会输出收入a和税费c。
需要注意的是,这个程序中的switch语句使用了多个case语句和default语句。每个case语句对应一个收入等级,而default语句则对应收入等级超过3的情况。在每个case语句中,程序会使用不同的税率计算税费。