是否可以从同一情况下的方法退出(返回)交换条件?

时间:2018-07-20 16:39:54

标签: java

是否可以从相同情况下的方法中退出(返回)交换条件?

给出以下代码:

switch(int blaah) {
    case 1: 
        some code here;
        break;
    case 2: 
        myMethod();
        some code here;
        break;
    default:
        some code here;
}

public void myMethod() {

    if(boolean condition) {
        return;  
        /*I want this return valuates in switch case too.
        so the switch case exit without executing the rest of code of "case 2" */

    }
        some code here;
}

我知道这里的return仅跳过myMethod中的其余代码。我正在寻找可以告诉switch情况从该方法停止执行的东西。

2 个答案:

答案 0 :(得分:2)

如果没有完整的上下文,很难给出有意义的解决方案。

但是...

您可以从该方法返回布尔结果,并根据开关结果决定是否继续。

public boolean myMethod() {

    if(boolean condition) {
        return false;
    }
     //some code here;
     return true;
}


switch(int blaah) {
    case 1: 
        some code here;
        break;
    case 2: 
        if (myMethod()) {
            //some code here; //Execute only if the method signalled to do so
        }
        break;
    default:
        some code here;
}

另一个选择:

如果if(boolean condition)是您在方法中所做的第一件事,则可以在开关案例中对其进行评估,并且可以避免在结果为true并立即中断的情况下调用该方法。

case 2: 
        if (boolean condition) {
            myMethod();
            //some code here;
        }
        break;

答案 1 :(得分:0)

最好的选择是

   case 2: 
        if (someCondition) {
            myMethod();
        }
         else {
          // some code
          }
        break;