[英]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.