“否则”是否比“Switch()case”更快?我是个前帕斯卡人,目前正在学习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;}哪个更快?我问这个问题,因为我的程序有一个类似的结构(很多,很多其他的if语句)。我应该把它们变成开关吗?
3 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
编辑:
慕运维8079593
TA贡献1876条经验 获得超5个赞
结果表明,开关语句的执行速度比if-否则-if梯子快.这是因为编译器能够优化开关语句。在if-否则-if梯子的情况下,代码必须按照程序员确定的顺序处理每个if语句。但是,由于开关语句中的每一种情况都不依赖于前面的情况,所以编译器能够重新排序测试,从而提供最快的执行。
- 3 回答
- 0 关注
- 818 浏览
添加回答
举报
0/150
提交
取消