Возможные дубликаты:
"else if" быстрее, чем "switch() case" ?
Какова относительная производительность if/else vs. switch в Java?
Ive снова кодировалось в процессе... когда отладчик проходит через оператор case, он сразу переходит к элементу, который соответствует условиям, однако, когда указанная логика указана с использованием if/else, она проходит через каждый оператор if, пока не найдет победителя. Является ли аргумент case более эффективным, или мой отладчик просто оптимизирует шаг? (не беспокойтесь о синтаксисе/ошибках, я набрал это в SO, не знаю, скомпилирует ли он, его принцип, который я за ним, я не хотел делать их как ints, потому что я смутно помню что-то о case с использованием смещения с ints) Я использую С#, но im заинтересован в общем ответе на языках программирования.
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{
}