在C++中if语句和case语句哪一个执行效率更高

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C++中if语句和case语句哪一个执行效率更高相关的知识,希望对你有一定的参考价值。

Case执行语句的效率高些,if语句的执行对系统的开销大些 参考技术A case 够直观,但执行效率不及if高。
如果对运行速度有要求,建议使用IF,
否则,还是使用CASE,因为它够直观。
参考技术B 实际上case1啥也不干,但是由于case1后面没有break语句执行完case1会继续执行case2,直到遇到break语句,同理如果显示x,那就说明执行了case2因为case2后面没有break语句所以程序会执行case3和case4,直到遇到break,哪里还不明白可以hi我

为什么switch...case语句比if...else执行效率高

https://www.cnblogs.com/idorax/p/6275259.html

 

switch case 语句多的时候 编译器会将switch case 转为跳转表  (.rodata)

 

 

#include <stdio.h>

static int
foo_ifelse(char c)
{
        if (c == 0 || c == 1) {
                c += 1;
        } else if (c == a || c == b) {
                c += 2;
        } else if (c == A || c == B) {
                c += 3;
        } else {
                c += 4;
        }

        return (c);
}

static int
foo_switch(char c)
{
        switch (c) {
                case 1:
                case 0: c += 1; break;
                case b:
                case a: c += 2; break;
                case B:
                case A: c += 3; break;
                default:  c += 4; break;
        }

        return (c);
}

int
main(int argc, char **argv)
{
        int m1 = foo_ifelse(0);
        int m2 = foo_ifelse(1);
        int n1 = foo_switch(a);
        int n2 = foo_switch(b);
        (void) printf("%c %c %c %c
", m1, m2, n1, n2);
        return (0);
}

 

以上是关于在C++中if语句和case语句哪一个执行效率更高的主要内容,如果未能解决你的问题,请参考以下文章

C语言中的条件赋值语句和if——else语句执行效率比较,哪一个效率高些,坐等高手解惑

c语言中,三木运算符和if语句哪个效率更高一些?

switch 和 if else if else 有什么区别

为什么switch...case语句比if...else执行效率高

switch case语句和if的区别

关于switch语句,case和default的执行顺序,