C++ 切换为对所有情况执行相同的函数,并对其中一种情况执行单个打印语句

C++ 切换为对所有情况执行相同的函数,并对其中一种情况执行单个打印语句,c++,switch-statement,case,C++,Switch Statement,Case,我有一个开关的情况下,所有情况下,相同的功能将被执行,但对于其中一种情况,我也想打印一个打印语句 我理解,要在所有情况下执行相同的功能,您需要执行以下操作: 开关(箱式) { 案例A: 案例B: 案例C: 案例D: printf(“您的案例类型=%s\n”,案例类型); 打破 违约: printf(“默认值”); 打破 } 在本例中,它将打印通过caseType传递的任何案例的案例类型 但是如果我想打印案例a(如果案例==a,以及您的案例类型打印),该怎么办 我尝试了这一点,但它似乎没有按照我

我有一个开关的情况下,所有情况下,相同的功能将被执行,但对于其中一种情况,我也想打印一个打印语句

我理解,要在所有情况下执行相同的功能,您需要执行以下操作:

开关(箱式)
{
案例A:
案例B:
案例C:
案例D:
printf(“您的案例类型=%s\n”,案例类型);
打破
违约:
printf(“默认值”);
打破
}
在本例中,它将打印通过caseType传递的任何案例的案例类型

但是如果我想打印案例a(如果案例==a,以及
您的案例类型
打印),该怎么办

我尝试了这一点,但它似乎没有按照我想要的方式工作(假设参数通过了
E
):

开关(箱式)
{
案例A:
案例B:
案例C:
案例D:
案例E:
{
printf(“案例E\n”);
}
printf(“您的案例类型=%s\n”,案例类型);
打破
违约:
printf(“默认值”);
打破
}

您必须重新安排您的案例,以便“特殊”案例位于顶部,然后通过:

switch(caseType)
{
    case E:
        printf("CASE E\n");
        // no break; here, fall through
    case A:
    case B:
    case C:
    case D:
        printf("Your case type = %s\n",caseType);
    break;
    default:
        printf("default\n");
    break;
}

您必须重新安排您的案例,以便“特殊”案例位于顶部,然后通过:

switch(caseType)
{
    case E:
        printf("CASE E\n");
        // no break; here, fall through
    case A:
    case B:
    case C:
    case D:
        printf("Your case type = %s\n",caseType);
    break;
    default:
        printf("default\n");
    break;
}

开关
只能打开整型或枚举型的值。使用
%s
格式打印此类类型会产生未定义的行为。
开关
只能打开整型或枚举型的值。使用
%s
格式打印此类类型会产生未定义的行为。从C++17开始就有since C++17