-1

内側のif条件があるelse 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;

    }
4

7 に答える 7

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;
        }
}
于 2013-10-31T14:31:45.750 に答える
1

他の人は、ブロックの再構築についてすでに回答しています。条件のチェックを順番に行う必要がない場合は、次のことができます-

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

}
于 2013-10-31T14:36:29.163 に答える
1

Javaでは、breakループまたは名前付きブロックでのみfor使用できますwhileswitch/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;

    }
}
于 2013-10-31T14:31:25.867 に答える
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 に危険なほど近いため、おそらく推奨されません。

于 2013-10-31T14:36:11.300 に答える
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;
    }
}
于 2013-10-31T14:36:30.543 に答える
0

実際、読みやすい方法を試してみます。

if(condition1)
{

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

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

このようにして、ネストされた if を回避し、コードを非常に読みやすくします。

于 2013-10-31T14:37:29.280 に答える
0

このような if-else パターンは、ケースを処理するクラス構造を持つことを強く示唆しています。

Activity activity = ActivityFactory.getActivity(conditionCause);
activity.execute();
于 2013-10-31T14:37:45.200 に答える