5

我在 StackOverflow 上读到使用

if(someCondition)
{
    someCode();
}
else
{
    alternateCode();
}

由于容易受到分支错误预测的影响,可能效率低下(例如,请参阅此问题)。

-结构也是如此switch,例如,

switch (someCondition)
{
    case (someCase):
        something();
        break;
    case (otherCase):
        someOtherInstructions();
        break;
    default:
        defaultAction();
        break;
}

在这方面有什么不同(除了我允许三种可能性之外)?

4

1 回答 1

4

if语句不是“昂贵的”,条件分支可能是。 问题不在于您选择编写许多不同的高级语句中的哪一个-if , switch, for,while等。问题是现代计算机在执行无条件指令路径时工作得非常好,但是当有一个决策点时,它们可能会变慢。由于在没有决策点(即条件分支)的情况下您无法在计算中做任何有趣的事情,您不妨忽略高级语言结构的选择。

于 2013-06-03T11:16:56.653 回答