请教switch case和 if else if 执行起来哪个效率高
请问switch case和 ifelse if 执行起来哪个效率高有很多分支的时候我觉得是switch高,想知道有什么例外情况
请问switch case和 if else if 执行起来哪个效率高
有很多分支的时候我觉得是switch高,想知道有什么例外情况吗?
分支少的情况呢?谢谢
[解决办法]
单从理论上讲肯定是switch效率高,毕竟只计算一次值;然后就是比较跳转到
分支中去;而if else每个分支都要计算一下
但在实际的使用中,如果分支比较少;且特定条件下,也有可能if else if分支高;
比如= 0 =1和>1三个分支,如果通常应用都在>1这个分支里,也就是switch中的
default分支,那如下的效率可能更高
if(>1)
...
else if(=0)
....
else
....
你可以做个实验试一下,另外我觉得主要看应用场景,纯考虑效率没什么必要
[解决办法]
[解决办法]switch也有可能加入if else 实现
如果要测试的值比较松散相差较大,就会影响switch的效率
如果值相对集中,那么switch的效率高(如上所说,测试一张地址表)
具体问题具体分析吧 要看编译器如何对当前问题实现了