- Home /
Is a Switch Categorized by If statements more efficient than Large Switch Statement?
Which of these is more efficient or is it pretty much the same?
var creature : String;
switch (creature)
{
case mouse:
break;
case hedgehog:
break;
case rat:
break;
case guineapig:
break;
case squirrel:
break;
case swan:
break;
case crow:
break;
case blackbird:
break;
case dove:
break;
case peacock:
break;
case Magpie:
break;
default:
break;
}
//--- OR
if (creature.category == bird)
{
switch (creature)
{
case swan:
break;
case crow:
break;
case blackbird:
break;
case dove:
break;
case peacock:
break;
case Magpie:
break;
default:
break;
}
}
else if (creature.category == rodent)
{
switch (creature)
{
case mouse:
break;
case hedgehog:
break;
case rat:
break;
case guineapig:
break;
case squirrel:
break;
default:
break;
}
}
Answer by jgodfrey · Jan 02, 2015 at 09:00 PM
They're definitely "pretty much the same". While there may be some extremely negligible timing differences, for all practical purposes it doesn't really matter.
With that in mind, this is not really a valid place to try to squeeze performance out of an application. Just code these types of things using the style that you find the most readable / maintainable. That's where you'll get a real long-term gain.
Jeff
There's a puzzler on CarTalk about two guys drag racing in identical cars on a hot day. Once has the AC on, the other has it off. Oddly, the guy with the AC on would win (barely.) Sure, the AC reduces power, but he has his windows rolled up, and the streamlining is more of a gain.
Worrying about tiny efficiency stuff wastes a lot of time, and is often wrong anyway.
Also worth noting that big picture optimisation might throw everything out anyway. No point making a class perfect straight up if you later decide to eli$$anonymous$$ate that feature altogether.
Your answer
Follow this Question
Related Questions
JS switch vs multiple if's efficiency? 1 Answer
Input using the same key twice 1 Answer
How of these two methods are more efficient? 2 Answers
Problem with On/Off Switch 1 Answer
String Scanning Switch Statement 1 Answer