Java 如何打破Else If条件
我想打破一个else-if条件,它有一个内部if条件,如果内部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
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();