if
ステートメントになると、Javaが実際にどのように動作するのか不思議です。 (注:下の「コンポーネント」とは、明細書で確認される部分を意味します。たとえば、a
、b
、c
)JavaがIF文と効率をどのように処理するか
どちらが計算効率が良いですか?
if (a && b && c) { do stuff }
または
if (a) {
if (b) {
if (c) {
do stuff }
}
}
それはJavaが最初のバージョンで何をするかが重要ですので、私が尋ねる理由はあります。ステートメント内のすべてのものをチェックするか、a
をチェックし、それがfalse
である場合は、残りのステートメントのチェックをキャンセルしますか?
この場合、最も失敗する可能性が高いコンポーネントをステートメントの最初のコンポーネントとして配置することは理にかなっています。
2つ目の例のように、文全体が毎回チェックされると、コンポーネントを複数の異なる文に分割する方が理にかなっています。
これを簡単に試すことができます。 – Howard
私は、彼らが呼び出されるときに印刷するa、b、c関数を作っていると思いますよね? – Chro
@Howard:私はものを試して大きな賛美者です。しかし、私はいくつかのコード(またはバイトコードを見て)を実行することは、短絡動作が*保証されているかどうかを確認する良い方法だとは思わない*。このために、Java言語仕様は決定的なリソースです。 – NPE