-5
哪些代碼更好或優化或有效?比較Java中2個基元的最有效方法?
double a;
double b;
if (a == b)
return true;
或
if (a - b == 0)
return true;
哪些代碼更好或優化或有效?比較Java中2個基元的最有效方法?
double a;
double b;
if (a == b)
return true;
或
if (a - b == 0)
return true;
a % b == 0
並不意味着a
等於b
。所以編譯器無法對此進行優化。
至於另外兩個,你應該使用a == b
,因爲它更清晰,並將優化留給編譯器。
更重要的是,如果這些表達式是相同的,那麼任何像樣的編譯器都可以*優化'a == b'到與'a - b == 0'相同的代碼。 (例如,它們不適用於浮點,其中'a-b'可以引發一個FP不精確的結果異常,但是'a == b'不能,至少在ISO C.中) –
用什麼語言?第一個應該是最快的,因爲這是一個操作,除非你在一個非常特定的系統上工作,但我懷疑其他人會在某個地方更快。 – HopefullyHelpful
請注意,他們做了非常不同的事情。考慮'a = 4,b = 2' ...然後'a%b == 0',但是'a!= b'。 –
您的標題太可怕了,與您的問題無關,任何搜索它的人都無法找到它。將它重命名爲關於比較或均等的內容。 – HopefullyHelpful