Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何打破Else If条件_Java_If Statement_Break - Fatal编程技术网

Java 如何打破Else If条件

Java 如何打破Else If条件,java,if-statement,break,Java,If Statement,Break,我想打破一个else-if条件,它有一个内部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 exe

我想打破一个else-if条件,它有一个内部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;

    }

在java中,对于或while、switch/case或命名块,可以在循环中使用break-only

但如果你有方法无效,你可以写报税表

比如:

void foo(){

if(condition1=true){

        }
    else if(condition2=true){

           if(condition3=true){

              do activity 1;

              return;
            }

          do activity 2;
          do activity 3;

    }
}
好吧,你可以选择另一种说法

...
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,可能是不推荐的。

其他人已经回答了重组区块的问题。如果条件检查不需要按顺序进行,您可以这样做-

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

}

不需要休息。这应该可以做到

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;
    }
}

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

if(condition1)
{

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

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

这样可以避免嵌套的ifs,并使代码易于阅读。

像这样的If-else模式强烈建议使用某种类结构来处理这些情况

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

我希望=是为了示例,而不是代替==它甚至不应该存在。@MarounMaroun仅当在itUmm中的do activity2和3的条件3=true之后输入一个else块时。。。ifcondition3的else如何?请阅读if语句:True,严格返回将结束方法的执行。如果if之后没有逻辑,那么它将是一个有效的选项。在java中,您可以在循环for或while或switch/case中使用break only。错误的您还可以拆分命名块。@MaximShoustin在我找到的随机示例中:很好,我从未使用过块名。很高兴知道,补充回答
Activity activity = ActivityFactory.getActivity(conditionCause);
activity.execute();