我是前Pascal人,目前正在学习C#.我的问题如下:
下面的代码比开关更快吗?
int a = 5;
if (a == 1)
{
....
}
else if(a == 2)
{
....
}
else if(a == 3)
{
....
}
else if(a == 4)
{
....
}
else
....
Run Code Online (Sandbox Code Playgroud)
和开关:
int a = 5;
switch(a)
{
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
case 4:
...
break;
default:
...
break;
}
Run Code Online (Sandbox Code Playgroud)
哪一个更快?
我问,因为我的程序有类似的结构(许多很多"其他如果"语句).我应该把它们变成开关吗?
反正是为了使下面的代码仍然使用开关b而不返回a?谢谢!
$var = 0;
switch($var) {
case NULL : return 'a'; break;
default : return 'b'; break;
}
Run Code Online (Sandbox Code Playgroud)
当然,使用if语句,你可以这样做:
$var = 0;
if($var === NULL) return 'a';
else return 'b';
Run Code Online (Sandbox Code Playgroud)
但是对于更复杂的例子,这变得冗长.
可能重复:
"else if"是否比"switch()case"更快?
Java中if/else与switch语句的相对性能差异是什么?
我知道case语句可以用跳转表来实现.这是否比if语句更有效?
这只是应该避免的微观优化吗?