【发布时间】:2012-04-25 15:47:54
【问题描述】:
我在这里有技术上的疑惑,switch 语句执行得更快,我知道这一点
但我想知道的是它如何比 if & else if 执行得更快?
如何直接在所有case中找到controlExpression合适的case?
如果我认为它是使用 if else if 编写的,如果它自己运行并找到合适的情况,所以它不应该执行得更快,它会执行与 if else if 相同的性能吗?
你能回答我吗?在此先感谢
【问题讨论】:
-
使用哪种语言?它也可能因编译器而异。但是一般的想法是在选项中构建一个二叉搜索树(您可以通过有效地对 IF 进行排序来复制),或者是范围检查,然后是跳转表查找以找到它想要的代码,甚至是初始代码查找以将索引与常见实现相结合,然后从中查找跳转表,等等。这一切都表明您在实践中不太可能看到 switch 和 ifs 之间的任何显着差异。
标签: switch-statement case if-statement