If statement 将if语句转换为switch语句

If statement 将if语句转换为switch语句,if-statement,case,switch-statement,If Statement,Case,Switch Statement,如何将下面的if=语句转换为switch语句,而不需要为该间隔(41-49)之间的每个数字创建一个大小写?可能吗 if (num < 50 && num > 40) { printf("correct!"); } if(num40) { printf(“正确!”); } bool标准1=(num40); 开关标准1:。。。 它可能导致多级决策网络。。可怕的? < P>在C或C++中(既然你使用的是PrtTf,我会假定它是什么),每个选项都需要列举案例。 s

如何将下面的if=语句转换为switch语句,而不需要为该间隔(41-49)之间的每个数字创建一个大小写?可能吗

if (num < 50 && num > 40)
{
    printf("correct!");
}
if(num<50&&num>40)
{
printf(“正确!”);
}
bool标准1=(num<50&&num>40);
开关标准1:。。。
它可能导致多级决策网络。。可怕的?

< P>在C或C++中(既然你使用的是PrtTf,我会假定它是什么),每个选项都需要列举案例。


switch/case
if
之间唯一的区别是编译器可以将其转换为计算的转到,而不是检查范围。如果
switch/case
支持范围,则无法实现打开此优化可能性的目的。

您必须为交换机枚举每个案例。编译器将其转换为跳转表,因此不能使用范围。但是,您可以让多个案例使用相同的代码块,这可能更接近您想要的

switch(num) {
    case 41:
    case 42:
    case 43:
    case 44:
    case 45:
    case 46:
    case 47:
    case 48:
    case 49:
        printf("correct!");
        break;
    default:
        break;
}
这个怎么样

switch ((num-41)/9) {
case 0:
    printf("correct!");
    break;
}

用什么语言?CC++?还有什么?你为什么要转换这样一个表达式?布尔是唯一的方法吗?还有别的方法吗?我可以给这个案子附加条件吗?好奇。@wadafarfar,如果您所需的语言在计算(…)时支持返回真|假值,并且它们可以通过switch语句看到,那么,是的<代码>开关(条件)为真:代码1;错误:代码2;结束将起作用。为此写一个测试?
switch ((num-41)/9) {
case 0:
    printf("correct!");
    break;
}