簡體   English   中英

兩個IF語句與一個AND語句

[英]two IF statements vs. one AND statement

在java中我想知道哪些更有效:

if(something)
   {
      if(something)
    }

要么

if((something) &&(something))

我想知道兩者在性能方面的優點是什么。 哪種解決方案更適合不同的數據對象。

表現將是相同的。 將評估第一個語句,只有當它為真時才會評估第二個語句。

這僅僅是一個可讀性問題。 除非在第一個語句為真的情況下需要做某些事情,否則無論第二個語句是什么,我都會同時使用兩個語句,因為更清楚的是兩個語句都需要為某些事情發生。 您也不必不必要地縮進。

在Java中, &&短路。 這意味着如果a && b的第一個條件計算為false ,則甚至不評估第二個條件。

因此,兩者幾乎肯定會產生相同的代碼,並且沒有性能差異。

在這兩種形式中,您應該使用更清晰的代碼中的任何一種。

一般來說它們都是一樣的。 如果第一個被評估為false,則不會評估第二個。 如果第一個是假的,你想要發生某些事情,你應該使用單獨的if語句。 否則,如果您只想確保兩者都為真,並且如果其中一個返回false則不執行任何操作,則可以使用第二個選項。

請注意,Java中的&&運算符是一個短路運算符。 這意味着如果&&左側的表達式為false ,則Java將不會費心評估右側的表達式,因為無論右側表達式的計算結果是什么,結果都將為false

因此,實際上,這兩種結構的性能將是相同的。

請注意,Java也有一個&運算符。 那個不會短路:它總是會評估&兩側的表達式。

我不知道但是,憑直覺,我認為一旦編譯成字節碼就沒有區別......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM