次のような書き込みはやめてください:
public boolean foo() {
if (true) {
true を返します。
} else {
false を返します
}
}
オープンソース プロジェクトを深く掘り下げて、おそらく専門家によって書かれ、経験豊富な専門家によってレビューされたこのようなコードを見るたびに、開発者がこのメソッドを使用することを誰も止めなかったことにいつも驚かされます。Return ステートメントがここにランダムに配置されています。
教えてください。以下のようなコードを書くのは難しいですか?
public boolean foo() {
ブール値フラグ = true;
if (true) {
flag=true;
}
他 {
flag=false;
}
リターンフラグ;
}
これは Java の基本的な常識です。実はこれはJavaの基礎知識だけではなく、小学生レベルのJavaの知識でもあります。メソッドが値を返す場合は、メソッドの先頭でそれを変数として宣言する必要があります。次に、変数に正しい意味を与えるためにいくつかの操作を実行します。次に、最後の行で、この変数を呼び出し側プログラムに返します。これを行うことは、単に良いコードを書くということではなく、良いマナーの一形態でもあります。
メソッド内のいたるところに return ステートメントが含まれるプログラム コードを変更しようとしたことがありますか? 開始する方法がありません。実際、そのようなコードを保守するには、最初にコードの構造を再編成して、多くの return ステートメントが含まれないようにする必要があります。この方法でのみ物事をうまく進めることができます。最後に、見つけやすい単一の return ステートメントを使用して記述できないメソッドはありません。
実際、ダメなプログラマは、そのようなダメなコードを書く理由を常に 10,000 個持っています。 「戻るときに、冗長な条件判断ステートメントを回避したいだけです。」 まず第一に、いくつかの条件判断ステートメントを実行するとき、コンピューターは非常に高速であることをお伝えしておきます。保存するには、ショートカット メソッドを使用できます。 CPU を 2 つ使用するのは不合理すぎませんか?さらに、これらのいわゆる冗長な条件文が最終的に使用されない場合、これは、「冗長な」コードを書き直す必要がある可能性があることを示す有用な信号であり、おそらく別のメソッドに再構築して、冗長に見えないようにする必要があるでしょうか?
重要な点は、特に良いコードを書くことがそれほど難しくない場合、悪いコードを書いたり、怠惰なプログラマーであることには言い訳ができないということです。何百、何千もの return ステートメントを含むメソッドを作成しないでください。これに対応して、Java のメソッドは 1 つの値のみを返すことができます。メソッドには return ステートメントが 1 つだけ必要です。