C++ c++;switch语句:对案例进行分组,并针对每个案例给出特定的说明

C++ c++;switch语句:对案例进行分组,并针对每个案例给出特定的说明,c++,switch-statement,C++,Switch Statement,考虑以下代码: int main() { const int a = 9; switch (a) { case 9: // since a is 9, this ("good") should be printed std::cout << " good " << std::endl; case 4: // since a is not 4, this ("bad") should

考虑以下代码:

int main()
{
    const int a = 9;
    switch (a)
    {
    case 9:
        // since a is 9, this ("good") should be printed
        std::cout << " good " << std::endl;

    case 4:
        // since a is not 4, this ("bad") should not be printed
        std::cout << " bad " << std::endl;

        // for both a==9 or a==4, this should be printed
        {
            std::cout << " always print me " << std::endl;
            break;
        }
    }
}

然而,这是行不通的。在C++中有没有办法做到这一点?谢谢

开关
语句中,除了使用
转到
之外,没有任何方法可以执行您要求的操作:

#include <iostream>

int main()
{
    const int a{ 9 };

    switch (a)
    {
    case 9:
        std::cout << "good\n";
        goto foo;

    case 4:
        std::cout << "bad\n";
        goto foo;

    foo:
        std::cout << "always print me\n";
        break;
    }
}
#包括
int main()
{
常数int a{9};
开关(a)
{
案例9:

std::不能将您的
始终打印我
消息打印出switch语句体。请使用
if
而不是
switch
?对于复杂的情况,您确实无法使用
switch
。还要注意,如果没有
中断
,您的代码将同时打印
“好”
“坏”
。开关盒只是标签。将开关盒视为一个更容易的转到标签系统。当然有……简单地说,
std::cout@user463035818“在开关语句中没有办法做你要求的事情”@user463035818:但在默认情况下也是如此(例如a=23)
#include <iostream>

int main()
{
    const int a{ 9 };

    switch (a)
    {
    case 9:
        std::cout << "good\n";
        goto foo;

    case 4:
        std::cout << "bad\n";
        goto foo;

    foo:
        std::cout << "always print me\n";
        break;
    }
}