Inwieweit wirkt sich die Reihenfolge der Fallbezeichnungen auf die Effizienz von switch-Anweisungen aus?

Erwägen:

if (condition1)
{
    // Code block 1
}
else
{
    // Code block 2
}

Wenn ich das weißcondition1 wird seintrue Die meiste Zeit sollte ich dann die Logik wie geschrieben codieren, anstatt:

if (!condition1)
{
    // Code block 2
}
else
{
    // Code block 1
}

da werde ich die strafe der meidenjump zum zweiten Codeblock (Hinweis: Ich habe begrenzte Kenntnisse der Assemblersprache). Überträgt sich diese Idee aufswitch Aussagen undcase Etiketten?

switch (myCaseValue)
{
    case Case1:
        // Code block 1
        break;

    case Case2:
        // Code block 2
        break;

    // etc.
}

Wenn ich weiß, dass einer der Fälle häufiger auftritt, kann ich die Reihenfolge der Fälle änderncase Etiketten, damit es effizienter ist? Sollte ich? In meinem Code habe ich die Gehäuseetiketten alphabetisch sortiert, um die Lesbarkeit des Codes zu gewährleisten, ohne wirklich darüber nachzudenken. Ist das Mikro-Optimierung?

Antworten auf die Frage(9)

Ihre Antwort auf die Frage