でSTATEMENT、私は技術的なここで疑問にみんなをお持ちの場合は、switch文をより速く実行し、そのことは、私はそれswitch文C++
を知っているが、私が知りたいのは、それがあれば、他&場合よりも速く実行しない方法です?
controlExpressionの適切なケースをすべてのケースで直接見つけることができますか?
もし私がそれを実行して適切なケースを見つけるためにif elseを使って書かれているとすれば、それはより早く実行すべきではありません。
私にお答えできますか? 、var == a
var == b
、var == c
など
This page has details of how that's translated into assembly by a compilerが、switch文の三つの「種類」基本的にあります:事前
どの言語ですか?コンパイラによって異なる場合もあります。しかし、一般的なアイデアは、効率的にIFを注文することで複製できるオプションにバイナリ検索ツリーを構築しているか、レンジチェックの後にジャンプ・テーブル・ルック・アップを付けて、必要なコードを見つけ出します。ルックアップを使用してインデックスを一般的な実装と組み合わせてからジャンプテーブルをルックアップするなど、実際にはスイッチとifの間に大きな違いはないと言われています。 – Rup