我是前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)
哪一个更快?
我问,因为我的程序有类似的结构(许多很多"其他如果"语句).我应该把它们变成开关吗?
我在Java字节码中理解LookUpSwitch和TableSwitch有些困难.
如果我理解得很好,LookUpSwitch和TableSwitch都对应于switchJava源代码的声明?为什么一个JAVA语句生成2个不同的字节码?
每个Jasmin文档:
java ×2
benchmarking ×1
bytecode ×1
c# ×1
if-statement ×1
jasmin ×1
jvm ×1
jvm-hotspot ×1
performance ×1