【发布时间】:2011-11-30 15:24:17
【问题描述】:
可能重复:
If vs. Switch Speed
我将以 c++ 为例,但我要问的问题不是针对特定语言的。我的意思是一般。哪一个对性能更好?这不是关于编程风格的问题。
当然,在某些情况下,switch 语句可能比 if 语句更易于使用。但是,如果您想要最大的性能。比如如果有数千行代码和 10 多个 switch 语句可以用 if 语句代替,哪一个会带来更好的性能?
例子:
if(x == 6){
do this
}
if(x == 67){
do this * 2
}
if(x == 9000){
do this * 3
}
对比
//Please forgive me if the syntax for the switch statement is wrong, I haven't use one in any programming language for a long time
Switch(x){
case 6:
do this
case 67:
do this * 2
case 9000:
do this * 3
}
那么这在性能上有何不同?当您回答时,请确保您的回答包含您所指的编程语言。如果在 java 中,请说明您在谈论 java 而不是 c++、javascript,以及您选择回答我的问题的任何语言。
【问题讨论】:
-
你为什么不自己做一个基准测试?
-
我很确定,无论是哪种语言,即使调用了十亿次,两者之间也不会有任何明显的区别。使用更具可读性和可维护性的内容。
-
请务必在
switch中包含break;s,否则代码将不等价。 -
这是在伪代码中还是您打算让代码评估所有
if语句并执行switch中的所有cases -
@Toomai 这不是重点......这只是开关与 if 的想法。
标签: java c++ performance coding-style