This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

这个问题我以前不知在哪里也问过,请给个明确答案

  • switch语句反而比ifelse的执行效率要高。
     
    switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而,switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项从而到达定位分支的目的。

  • 准确的说,这个问题无法给出一个肯定的答复。因为不同的编译器会有不同的编译策略,有的编译器会对switch case做专门的优化,例如CCS。

    一个通用的方法是,楼主使用两种方法实现,然后通过汇编或者运行时间来比较。

  • 对于此问题,我是这样理解的,switch case相当于分支较多,但是到底是那一个,一开始不明确,此时if else的条件如果在最后,那switch效率相对较高,如果if条件就是直接的第一想,自然if高,if  else就像是二分法的手段,一半不行再分一半,都有自己的有事和特点,怎么用,根据程序需要来选择。现在C语言编程,也没有必要考究的很严格,实现功能即可。