Case vs If Else If: Qual é mais eficiente? [duplicado]
Possíveis duplicatas:
"else if" é mais rápido que "switch () case"?
Qual é o desempenho relativo do if / else vs. switch em Java?
Eu tenho codificado na execução novamente .... quando o depurador percorre uma instrução case, ele salta para o item que corresponde às condições imediatamente, no entanto, quando a mesma lógica é especificada usando if / else ela percorre todas as instruções if até encontrar o vencedor. A declaração de caso é mais eficiente ou meu depurador está apenas otimizando a etapa? (não se preocupe com a sintaxe / erros, digitei isso no SO, não sei se ele será compilado, é o princípio que procuro, não queria fazê-los como ints, porque me lembro vagamente de algo sobre caso usando um deslocamento com ints) eu uso C #, mas estou interessado em uma resposta geral em linguagens de programação.
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{
}