可能重複:
is 「else if」 faster than 「switch() case」 ?
What is the relative performance of if/else vs. switch in Java?病例vs如果其他如果:哪個更有效?
我一直編碼合的運行再次....當通過一個case語句調試步驟就跳轉到項目即時匹配條件,但是當使用if/else指定相同的邏輯時,它會遍歷每條if語句,直到找到勝者。案例陳述更有效率,還是我的調試器只是優化步驟? (不要擔心語法/錯誤,我在SO中輸入了這些信息,不知道它是否會編譯,它的原理是我之後,我不想將它們作爲整數,因爲我隱約記得有關case使用帶ints的偏移量)我使用C#,但是我對跨編程語言的一般答案感興趣。
switch(myObject.GetType()){
case typeof(Car):
//do something
break;
case typeof(Bike):
//do something
break;
case typeof(Unicycle):
//do something
break;
case default:
break;
}
VS
Type myType = myObject.GetType();
if (myType == typeof(Car)){
//do something
}
else if (myType == typeof(Bike)){
//do something
}
else if (myType == typeof(Unicycle)){
//do something
}
else{
}
這甚至不接近語言不可知論,任何答案都會緊密地綁定到一種特定的語言。 – skaffman 2010-01-28 23:25:09
更不用說具體的編譯器和編譯器版本了。 – 2010-01-28 23:27:47
它可能因語言,編譯器和運行時間而異。沒辦法知道肯定。 – FrustratedWithFormsDesigner 2010-01-28 23:29:22