2016-06-08 42 views
-3
int count() 
{ 
    return 5; 
} 

int variable = count(); 

switch(variable) 
{ 
} //this works correct 

switch(count()) 
{ 
}//this also works correct. 

但是,哪些是正確的方法,兩者之間的性能比較是什麼? 切換語句總是隻需要一個參數?直接將函數調用作爲參數的開關語句

+0

它沒有任何區別。做任何事情使得最可讀的代碼。 – VGR

+0

第二個更好,因爲代碼更具可讀性。但是如果你打算在代碼中再次使用它,最好保存結果,以免再次計算。 – kemis

+0

你是什麼意思的顯式參數? – zEro

回答

2

但其中哪些是正確的做法

沒有什麼不正確使用兩種方法。 switch(count())簡單比switch(variable)簡潔。

聲明變量可以使代碼更易讀,例如

final int month = Integer.parseInt(dateMonthYearString.split("/")[1]); 
switch(month){/*...*/} 

這兩者之間的性能比較是什麼?

我懷疑表現會有什麼不同。當然不是值得擔心的事情。

切換語句總是隻需要一個顯式的參數?

我不確定你的意思。 switch聲明中的表達式必須評估爲intshort,byte,charenum。從Java 1.7起,該表達式還可以返回String

+1

字符串可以從Java 7開始使用。開關也可以在'enum'上運行。 –

+0

謝謝!我會更新我的答案 –

0

最後一條語句更好,因爲count()只被調用一次。

在OOP中,您可以避免在某些情況下使用設計模式狀態的開關,以獲得比這兩者更好的性能。 「用多態性替換開關/外殼」是一種供您參考的技術。