私は通常、複数の条件ステートメントを作成する必要がある場合にswitchステートメントを使用します。多くの場合、3つ以上の明確に定義された条件があります。
ただし、フォールスルー動作を含む双条件ステートメントを処理するために、単純なif、else if、elseステートメントとswitchステートメントの間で迷うことがよくあります。
if (condition1)
{
// handling condition1.
}
else if (condition2)
{
// handling condition2.
}
else
{
// handling fall-through.
}
また
switch (n)
{
case condition1:
// handling condition1.
break;
case condition2:
// handling condition2.
break;
default:
// handling fall-through.
break;
}
ウィキペディアのSwitchステートメントの記事には次のように記載されています。
一部の言語およびプログラミング環境では、caseまたはswitchステートメントの使用は、次の理由から、同等の一連のif-elseステートメントよりも優れていると見なされます。
- デバッグが容易です(たとえば、デバッガーに条件付きブレークポイント機能がない場合は、コードと呼び出しテーブルにブレークポイントを設定します)
- 読みやすい(主観的)
- 理解しやすいため
- メンテナンスが簡単
- より速い実行の可能性
.NET共通言語ランタイムについて、この場合、switchステートメントのより高速な実行の可能性は現実的ですか?
共通言語ランタイムが両方のシナリオをどのように処理しているか、そして一方が他方よりもどのように好ましいかを知りたいです。