5

私はそれを使用してStackOverflowを読みました

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

分岐の予測ミスの影響を受けやすいため、非効率的である可能性があります (たとえば、この質問を参照してください)。

-constructもswitch同様です。たとえば、

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

この点で違いはありますか (3 つの可能性を考慮したという事実以外に)?

4

1 に答える 1

4

ifステートメントは「高価」ではありませんが、条件分岐はそうかもしれません。 問題は、さまざまな高レベルのステートメントのどれを書くかではありません-if , switch, for,whileなど. 問題は、最新のコンピューターが無条件の命令パスを実行するのは非常にうまく機能しますが、決定点があると速度が低下する可能性があることです。決定点 (つまり、条件分岐) がなければ、コンピューティングで興味深いことは何もできないので、高級言語構造の選択を無視することもできます。

于 2013-06-03T11:16:56.653 に答える