Possibili duplicati:
is “else if” faster than “switch() case” ?
What is the relative performance of if/else vs. switch in Java?Case vs If Else If: Quale è più efficiente?
Ive codifica-in-the-run di nuovo .... quando il debugger, attraverso una dichiarazione caso si salta alla voce che soddisfa immediatamente le condizioni, tuttavia quando viene specificata la stessa logica usando/se passa attraverso ogni istruzione if finché non trova il vincitore. La dichiarazione del caso è più efficiente o il mio debugger sta semplicemente ottimizzando il passaggio? (non preoccuparti della sintassi/errori, ho inserito questo in SO, non so se verrà compilato, è il principio che sto cercando, non volevo farlo come ints perchè ricordo vagamente qualcosa riguardo caso utilizzando un offset con ints) Io uso C#, ma mi interessa una risposta generale attraverso i linguaggi di programmazione.
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{
}
Questo non è nemmeno * vicino * all'ignoraggio della lingua, qualsiasi risposta sarà strettamente legata a una lingua specifica. – skaffman
per non parlare della versione specifica del compilatore e del compilatore. –
Può variare tra lingue, compilatori e runtime. Non c'è modo di saperlo con certezza. – FrustratedWithFormsDesigner