C# パフォーマンスの比較: else if
と switch
C# 開発では、条件判断を実装するために else if
ステートメントと switch
ステートメントのどちらを選択するかが混乱することがよくあります。この記事では、2 つの方法のパフォーマンスの違いについて詳しく説明します。
else if
実装
else if
ステートメントは、一致するものが見つかるまで各条件を順番にチェックします。例:
<code class="language-csharp">int a = 5; if (a == 1) { // 代码 } else if (a == 2) { // 代码 } else if (a == 3) { // 代码 } else if (a == 4) { // 代码 } else // 代码</code>
switch
実装
switch
ステートメントは、入力値を複数のケースと比較し、一致したケースに対応するコード ブロックを実行します。同じ例:
<code class="language-csharp">int a = 5; switch (a) { case 1: // 代码 break; case 2: // 代码 break; case 3: // 代码 break; case 4: // 代码 break; default: // 代码 break; }</code>
パフォーマンスに関する考慮事項
ケースの数が少ない場合、else if
と switch
のパフォーマンスの差はわずかです。ただし、ケースの数が増えるにつれて、switch
はより効率的になります。
これは、ケースの数が 5 を超える場合、switch
ステートメントは通常、ルックアップ テーブルまたはハッシュ テーブルを使用して実装されるためです。これは、順序に関係なく、すべてのケースのアクセス時間が同じであることを意味します。
および else if
ステートメントは、各条件を順番にチェックします。そのため、件数が増えると最後の条件にアクセスするまでの時間が長くなり、多数の条件判定を行うと大幅な性能低下が発生します。
結論
ケース数が限られている場合、else if
と switch
のパフォーマンスの差は無視できます。ただし、多数のケースを処理する場合、最高のパフォーマンスを得るために、switch
ステートメントを使用することを強くお勧めします。
以上が「else if」と「switch」: C# ではどちらの条件文がより良いパフォーマンスを提供しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。