如果条件有内部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;
}
答案 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中,您只能在循环break
或for
或while
或命名块中使用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();