0

私はifステートメントのグループを作成しようとしていifます。ここでは、引数がtrueの場合、それぞれが出力されますが、返されなかったsは出力さelseれません。この場合はうまくいかないと思います。ififelse if

私はいくつかのコードを持っています(色は単なる例です):

boolean any=false;

if(redStage==2)
{ any=true; System.out.print(redComplete); }

if(blueStage==2)
{ any=true; System.out.print(blueComplete); }

if(greenStage==2)
{ any=true; System.out.print(greenComplete); }

if(any==false)
    System.out.print(noneComplete);

ifの引数のいずれかが真であるかどうかをチェックするための別のブール値の必要性を排除するために私ができることはありますか?

編集:(混乱する可能性があることに気づきました。imが使用しているコードは実際にはreturnを使用していません。代わりに、結果を出力しています。つまり、複数のものが返される可能性があります。)

4

1 に答える 1

8

ステージを互いに独立して処理する必要があり、同時に複数のステージを完了することができるため、コードは可能な限り優れています。

以下は、あなたの最初の質問に対する私の答えです。

ブール値は必要ありません。あなたのコードは以下と同等です:

if (redStage   == 2) { return redComplete; }
if (blueStage  == 2) { return blueComplete; }
if (greenStage == 2) { return greenComplete; }
return noneComplete;

これは、各ifボディに無条件のが含まれているという事実を利用していreturnます。そうでない場合は、次のように構成を表現できます。

if (redStage == 2) {
   // redComplete
} else if (blueStage == 2) {
   // blueComplete
} else if (greenStage == 2) {
   // greenComplete
} else {
   // noneComplete
}
于 2013-03-02T09:10:04.920 に答える