我们可以在Java中同一switch语句中的另一个案例中调用“case”吗?

2022-09-04 20:07:35

我的目的是在同一个 switch 语句中调用另一个案例中的两个案例,

switch (orderType) {
        case 1: 
            statement 1;
            break;
       case 2:
            statement 2;
            break;
       case 3:
             **call case 1;**
             **Call case 2;**
             break;
       default:
            break;`
}

我们可以在Java中做到这一点吗?


答案 1

虽然不能直接影响事例,但可以从一个事例调用 switch 的父方法并传递不同的参数。例如switch

void foo(int param1, String param2, ...) {
    switch (param1) {
        case 0:
            foo(1, "some string");
            break;

        case 1:
            //do something
            break;

        default:
            break;
    }
}

答案 2

不可以,您不能转到另一个开关案例中的代码段。但是,您可以将代码提取到一个自己的方法中,该方法可以从另一种情况下调用:

switch (orderType) {
    case 1: 
        someMethod1();
        break;
    case 2:
        someMethod2();
        break;
    case 3:
        someMethod1();
        someMethod2();
        break;
    default:
        break;
}

void someMethod1() { ... }
void someMethod2() { ... }