如何打破其他条件

时间:2013-10-31 14:30:08

标签: java if-statement break

如果条件有内部if条件,我想打破其他条件,如果内部if条件变为如下,请建议我一个方法。

 if(condition1=true){

        }
    else if(condition2=true){

           if(condition3=true){

              do activity 1;
              //I want to break here if condition3 is true, without executing activity 2 & 3
            }

          do activity 2;
          do activity 3;

    }

7 个答案:

答案 0 :(得分:5)

else if(condition2){
       if(condition3){
              do activity 1;
              //I want to break here if condition3 is true, without executing activity 2 & 3
        }
        else
        {
              do activity 2;
              do activity 3;
        }
}

答案 1 :(得分:1)

在java中,您只能在循环breakforwhile或命名块中使用switch/case

但如果你有方法void,你可以写return;

类似的东西:

void foo(){

if(condition1=true){

        }
    else if(condition2=true){

           if(condition3=true){

              do activity 1;

              return;
            }

          do activity 2;
          do activity 3;

    }
}

答案 2 :(得分:1)

其他人已经回答了重组的问题。如果不需要按顺序检查条件,则可以 -

if(condition3=true){
    do activity 1;
} else if(condition2=true){
    do activity 2;
    do activity 3;
} else if(condition1=true){

}

答案 3 :(得分:0)

好吧,你可以去else声明。

...
if(condition3=true){
    do activity 1;
} else {
    do activity 2;
    do activity 3;
}
...

或者,如果您愿意,可以将整个代码块提取到单独的函数中,并在活动1之后立即返回。

我认为您也可以使用命名块:

...
doActivities:{
    if(condition3=true){
        do activity 1;
        break doActivities;
    } else {
        do activity 2;
        do activity 3;
    }
}
...

但是,这很危险地接近完全goto,可能不推荐。

答案 4 :(得分:0)

无需休息。这应该做到。

if(condition1=true){

} else if(condition2=true){
    if(condition3=true){
        do activity 1;
        //I want to break here if condition3 is true, without executing activity 2 & 3
    } else {
        do activity 2;
        do activity 3;
    }
}

答案 5 :(得分:0)

事实上,我会尝试更容易阅读的方式:

if(condition1)
{

}
else if(condition2 && condition3) {
      do activity 1;

}
else if(condition2 && !condition3) {
      do activity 2;
      do activity 3;
}

这样可以避免使用嵌套ifs并使代码非常容易阅读。

答案 6 :(得分:0)

If-else这样的模式强烈暗示有一些类结构来处理这些情况。

Activity activity = ActivityFactory.getActivity(conditionCause);
activity.execute();