我是Pascal的前男生,目前正在学习C#。我的问题如下:
下面的代码比进行切换更快吗?
int a = 5; if (a == 1) { .... } else if(a == 2) { .... } else if(a == 3) { .... } else if(a == 4) { .... } else ....
和开关:
int a = 5; switch(a) { case 1: ... break; case 2: ... break; case 3: ... break; case 4: ... break; default: ... break; }
哪一个更快?
我问,因为我的程序具有类似的结构(很多,很多“ else if”语句)。我应该把它们变成开关吗?
对于仅有的几项,差异很小。如果您有很多物品,则一定要使用开关。
如果一个开关包含五个以上的项目,则使用查找表或哈希表来实现。这意味着,与if:s列表相比,所有项目都具有相同的访问时间,在if:s列表中,最后一个项目需要花费更多的时间,因为它必须首先评估每个先前条件。