[解決済み] switch() case」よりも「else if」の方が速い?重複] [重複] [重複] [重複
2022-03-26 14:05:16
質問
元Pascalで、現在C#を勉強している者です。 質問は以下の通りです。
下のコードはswitchを作るより速いですか?
int a = 5;
if (a == 1)
{
....
}
else if(a == 2)
{
....
}
else if(a == 3)
{
....
}
else if(a == 4)
{
....
}
else
....
そして、スイッチ。
int a = 5;
switch(a)
{
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
case 4:
...
break;
default:
...
break;
}
どちらが速いですか?
私のプログラムも似たような構造(たくさんの "else if" 文)なので、質問させていただきました。 それらをスイッチに変えるべきでしょうか?
どのように解決するのですか?
数個のアイテムであれば、その差はわずかです。アイテムが多い場合は、絶対にスイッチを使うべきです。
switchに5つ以上の項目がある場合、ルックアップテーブルまたはハッシュリストを使って実装されます。これは、すべての項目のアクセス時間が同じであることを意味し、最後の項目が以前のすべての条件を最初に評価する必要があるため、より多くの時間を要するif:sのリストと比較されます。
関連
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] B "の印刷が "#"の印刷より劇的に遅いのはなぜですか?
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Pythonのswitch文の代用品?
-
[解決済み] <は<=より速いのか?
-
[解決済み] \0-9]よりも効率が悪い
-
[解決済み] switch文の中で変数を宣言してはいけないのはなぜですか?
-
[解決済み】大文字・小文字を区別しない「Contains(string)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み】コンパイルエラー「未割り当てのローカル変数を使用しています」が発生したのはなぜですか?
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?
-
[解決済み】C#でif/elseとswitch-caseを使うことに大きな違いはあるのでしょうか?