次の文で、Vector2Dがボックス内にあるかどうかを確認し、IntelliJが「if文を簡略化できます。Java:if文を簡略化することができます(ボックスには点が含まれています)
if(point.x < minX || point.x > maxX || point.y < minY || point.y > maxY)
return false;
どうすれば簡単にすることができますか?
次の文で、Vector2Dがボックス内にあるかどうかを確認し、IntelliJが「if文を簡略化できます。Java:if文を簡略化することができます(ボックスには点が含まれています)
if(point.x < minX || point.x > maxX || point.y < minY || point.y > maxY)
return false;
どうすれば簡単にすることができますか?
私は単純化の可能性はありません。私は警告を無視します。
更新:あなたは方法は次のようになり場合しかし、:
return !(point.x < minX || point.x > maxX || point.y < minY || point.y > maxY);
あるいは:
return point.x >= minX && point.x <= maxX && point.y >= minY && point.y <= maxY;
if(point.x < minX || point.x > maxX || point.y < minY || point.y > maxY)
return false;
return true;
あなたはこれにそれを変更する場合があります
I dこれが人間にとって単純化されているかどうかは分かりません。
2つのif文に分割してください.1つは "x"座標用、もう1つは "y"用です。
if(point.x < minX || maxX < point.x)
return false;
else if(point.y < minY || maxY < point.y)
return false;
これは、OPが求めているものと同等ではありません。 – Smit
のIntelliJが可能簡素化を警告するたびに、それは多くの場合(黄色の電球をクリックすることで)簡素化を実行するために提供しています。もしあなたがそうすればどうなりますか?
return new Rectangle(minX, maxX, minY, maxY).contains(point);
限りブール代数の観点から簡素化して、あなたがマーティンの答えを探している必要があります。
私のバージョンには電球はありませんでしたが、クリック可能なツールチップがありました。ありがとう! – kiel814
ありがとうございます...それは私のために働く –
たぶん、あなたはこのような何かを試みることができます。実際には、コンパイラが自動的にそれを行うので、単純化する必要はありません。たとえば、!(a && b)
は、!a || !b
に簡素化されます。これは、一時変数を作成し、その値をチェックするのではなく、各変数を個別にチェックする方が早いからです。
これは事実です。私はif節の内部を簡素化してみました。それが私がそれを見つけることができなかった理由です。私はあなたの最後の提案に行った。それは私にはもっと意味がありました。 – kiel814