![](/img/trans.png)
[英]Comparisions using ternary operator vs if else vs switch case (Performance)
[英]if else vs switch performance in java
我想知道使用if語句或switch之間是否有效率差異。 例如:
if(){
//code
}
else if(){
//code
}
else{
//code
}
我認為,即使第一個if語句為true,程序也需要檢查所有if語句。
switch(i){
case 1:
//code
break;
case 2:
//code
break;
但是在開關中,有一個break命令。 我的對嗎? 如果沒有,您能否解釋一下兩者之間的效率差異?
Switch
PERF優於if else
在開關的情況下,會有一個時間的評價。 一旦評估了該開關,它便知道需要執行哪種情況,但是在if else
情況下, if else
情況最糟,則必須經過所有條件。
列表條件越長,切換性能越好,但是對於較短的列表(僅兩個條件),它也會變慢
通過切換,JVM加載要比較的值並遍歷值表以查找匹配項,這在大多數情況下更快
Switch
速度更快。
想象一下,您正處在交叉路口,有很多路徑。 使用switch
,您可以在第一時間轉到正確的路徑。
if
使用if
,則必須先嘗試所有路徑,然后才能找到正確的路徑。
盡可能使用switch
。
當然,對於計算機,這種差異很小,您甚至都不會注意到。 但是,是的,您明白了。
我認為代碼很清楚。 使用if時,您必須檢查每種情況,然后逐項檢查(在最壞的情況下,最后一次返回將返回結果)。 使用switch時,諸如特殊字節碼檢查之類的某種跳轉到正確的情況以返回。 因此,該開關比if語句快一點。 但是,我認為我們需要專注於實現方式,以便於閱讀。 在某些簡單的情況下,if也是編寫代碼的一種選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.