在Switch case中默认

2vi*_*on2 4 c c++ if-statement switch-statement

以下是我需要优化和计划的代码,以便切换到最佳状态.但我可以比较一下.所以我计划将comaparision(len> 3)作为默认情况.

如果我将比较部分(len> 3)作为默认情况并在swith中添加默认值,它会更快吗?

或者我如何将下面的代码作为switch语句?

            if ( len > 3 ) {
                    which will happen more often;
            }               
            else if ( len == 3 ) {
                    next case which may occur often;
            } else if ( len == 2 ) {        
                   the next priority case;
            } else {
                    and this case occurs rarely;
            }
Run Code Online (Sandbox Code Playgroud)

Som*_*ame 6

可能不是.这两个if...elseswitch...case高层次的结构.什么减慢你的速度是分支预测.预测越好,代码运行得越快.就像你写的一样,你应该将你最常见的案例放在第一个if,第二个else if,依此类推.因为switch结果取决于内部编译器实现,它可以重新排序案例,尽管你自己的订单.在default实际应被保留用于更少的情况下发生的,因为条件的其他国家必须回落到前进行检查default.

总而言之,if...else只要您按正确的顺序设置条件,性能方面的使用就是最佳的.关于switch...case它的编译器特定,取决于应用的优化.

还要注意,它switch...caseif...else仅支持简单的值比较更有限.