为了账号安全,请及时绑定邮箱和手机立即绑定

案例与其他假设:哪个更有效?

案例与其他假设:哪个更有效?

慕桂英3389331 2019-11-30 13:33:58
我已经再次在运行中编码。...当调试器逐步执行一个case语句时,它跳转到立即与条件匹配的项目,但是当使用if / else指定相同的逻辑时,它将逐步执行每个if语句。直到找到赢家。case语句是否更有效率,还是我的调试器只是优化了整个过程?(不要担心语法/错误,我在SO中键入了它,不知道它是否可以编译,这是我遵循的原理,我不想这样做是因为int导致我模糊地记得一些关于我使用C#,但是我对跨编程语言的通用答案很感兴趣。switch(myObject.GetType()){    case typeof(Car):        //do something        break;    case typeof(Bike):        //do something        break;    case typeof(Unicycle):        //do something        break;    case default:        break;}VS   Type myType = myObject.GetType();   if (myType == typeof(Car)){            //do something   }   else if (myType == typeof(Bike)){            //do something   }   else if (myType == typeof(Unicycle)){            //do something   }   else{   }
查看完整描述

3 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

调试器使它变得更简单,因为您不想单步执行编译器创建的实际代码。


如果该开关包含五个以上的项,则使用查找表或哈希表实现,否则使用if..else实现。


看到密切相关的问题是“否则”是否比“ switch()情况”更快?。


当然,除C#之外的其他语言或多或少地会不同地实现它,但是切换通常会更有效。


查看完整回答
反对 回复 2019-11-30
  • 3 回答
  • 0 关注
  • 513 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信