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

Las*_*ara 9 java switch-statement

我的意图是在同一个switch语句中调用另一个case中的两个case,

switch (orderType) {
        case 1: 
            statement 1;
            break;
       case 2:
            statement 2;
            break;
       case 3:
             **call case 1;**
             **Call case 2;**
             break;
       default:
            break;`
}
Run Code Online (Sandbox Code Playgroud)

我们可以用Java做到吗?

san*_*one 8

虽然您无法switch直接影响案例,但您可以从一个案例中调用switch的父方法并传递不同的参数.例如,

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

        case 1:
            //do something
            break;

        default:
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)


See*_*ose 6

不,您无法跳转到另一个交换机案例中的代码段.但是,您可以将代码提取到可以从另一个案例调用的自己的方法中:

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

void someMethod1() { ... }
void someMethod2() { ... }
Run Code Online (Sandbox Code Playgroud)