Vector2D がボックス内にあるかどうかを確認する次のステートメントがあり、IntelliJ から警告が表示されます:「if ステートメントを簡略化できます」。
if(point.x < minX || point.x > maxX || point.y < minY || point.y > maxY)
return false;
これをどのように単純化できますか?
Vector2D がボックス内にあるかどうかを確認する次のステートメントがあり、IntelliJ から警告が表示されます:「if ステートメントを簡略化できます」。
if(point.x < minX || point.x > maxX || point.y < minY || point.y > maxY)
return false;
これをどのように単純化できますか?
IntelliJ が簡略化の可能性を警告するときはいつでも、(黄色の電球をクリックして) 簡略化を実行することを提案することがよくあります。そんなことしたらどうなるの?
「x」座標用と「y」用の 2 つの if ステートメントに分けてみてください。
if(point.x < minX || maxX < point.x)
return false;
else if(point.y < minY || maxY < point.y)
return false;
たぶん、次のようなことを試すことができます:
return new Rectangle(minX, maxX, minY, maxY).contains(point);
ブール代数の観点から単純化する限り、マーティンの答えを探しているに違いありません。実際、単純化する必要さえありません。コンパイラーが自動的にそれをやってくれるからです。たとえば、一時変数を作成してその値を確認するのではなく、各変数を個別に確認する方が速いため、次の!(a && b)
ように単純化されます。!a || !b