2012-02-19 1 views
1

は、それが条件文/制御フローを評価することになるとあなたは似た何かをコーディングするさまざまな方法があるかどうかを確認するだけの簡単な質問でした。プログラミングテクニック/スタイルブロックであればCに/大型スイッチを避けるため?

例えば:

  • 場合はswitch文

私は基本的にやってIf (value == X) { // do X }Switch(value) { case X: ...

のオプションがあり、これらを行うにはどの整然と方法はありますこれには100を超える価値があり、取ることのできるデータ駆動型アプローチや、 ouldはコードを整理しますか?

+1

この質問は申し訳ありませんが、質問を移動するために、とにかくそこにあるprogrammers.stackexchange.com –

+0

に適しているのですか? – LmC

+0

司会者はそれを行うことができます –

答えて

4

値が整数で、スパースでない場合は、ルックアップテーブルを使用すると便利です(データとコードの両方に便利です)。この最後のケースでは、関数ポインタを使用します。コンパイラがしばしばswitchブロックで何をするのかということです)。別の可能な値を一つずつ確認した場合、性能はO(1)とO(N)からジャンプ。

はまた、非整数​​データに対して、ハッシュテーブルを使用することができます。それらがどれほど便利であるかは、場合によって異なります。