Javaが同じケースの複数の同一インスタンスをどのように処理するかを知りたいと思います。 私は概念的には、次のことが理にかなっていると思う:Java switchステートメントの複数/繰り返しケース
switch (someIntegerValue)
{
case 1:
case 2:
DoSomethingForBothCases();
break;
case 3:
DoSomethingUnrelated();
break;
case 1:
DoSomethingForCase1ThatReliesUponExecutionOfTheEarlierFunctionCall();
break;
case 2:
DoSomethingForCase2ThatReliesUponExecutionOfTheEarlierFunctionCall();
break;
}
基本的に、私は1または2、後に、その後(フォールスルーを使用して)、いずれの場合のために実行されるコードの塊を持っていると思い、チャンクを持っていますケース2に対してのみ実行されるコードです。
代わりに次のコードが必要ですか?
switch (someIntegerValue)
{
case 1:
DoSomethingForBothCases();
DoSomethingForCase1ThatReliesUponExecutionOfTheEarlierFunctionCall();
break;
case 2:
DoSomethingForBothCases();
DoSomethingForCase2ThatReliesUponExecutionOfTheEarlierFunctionCall();
break;
case 3:
DoSomethingUnrelated();
break;
}
私の実際のコードはより複雑であるが、(同じ原理を使用することになり、すなわちケース1 "のようなもの:いや、大丈夫... ケース2:!うん、このコードを実行!; 場合3:いいえ、再びケース1:再びまだいや!; ケース2:うん、このコードを実行; これ以上の例:??!!2つのswitch文と間違ってすべてを完了」)
最初のコードはコンパイルされません。 2番目のコードは構文的に正しいです。 switch文はブランチテーブルです(wikipediaを参照してください)。 – DwB