我已经再次在运行中编码。...当调试器逐步执行一个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#之外的其他语言或多或少地会不同地实现它,但是切换通常会更有效。
添加回答
举报
0/150
提交
取消