私の教師の一人は、switch文の使用を避けるべきだと言いました。 なぜですか?それについて何が悪いですか?Javaでswitch文を避けるのはなぜですか?
答えて
あなたのインストラクターは、スイッチステートメントを松葉杖として使用する状況にあなたが陥るのを防ぐために努力している可能性があります。状況が適切な場合がありますが、ポリモーフィズムでよりよく処理されるものをハードコードすることがよくあります。例えば
:
Car c = getCar();
switch(c){
case FordCar:
driveFordCar();
break;
case ToyotaCar:
driveToyotaCar();
break;
default:
break;
}
次いでFordCarとToyotaCarでそれを実装する、抽象クラスまたはインタフェースカーに抽象メソッドdriveCar()を置くことによってより良い処理されます。フォルクスワーゲン車のサポートを追加したい場合は、新しいVolkswagenCarクラスにdriveCarの実装を追加する方がクリーンであると考えてください(そうしなければコンパイラは文句を言います!)ステートメント。
これは、 'Car'がenumである場合にのみ機能します。あるいは、もちろんintを使うこともできます。 – shmosel
if/elseif/elseとswitch文の両方に用途があります。どちらもJavaコンパイラによって同じ/類似のバイトコードに変換される可能性が高いため、他のものよりも良くないか悪いです。
ifまたはelseif条件が一致すると、そのブロック内のコードが実行され、if/elseif/else "ladder"の最後にスキップされます。 switch文では、条件が一致すると、一致した "case"から "break;"までコードが続きます。見つかった。このようにして、他の一致条件を実行することが可能である。
- 1. フロントコントローラーで大規模なswitch文を避ける
- 2. なぜC#switchは最初の文だけを実行するのですか?
- 3. Java - nextLine(); switch文の中で
- 4. switch文でNSIntegerを使用できないのはなぜですか?
- 5. Javaのswitch文
- 6. Dispatcherの使用を避けるのはなぜですか?
- 7. 継続はなぜスタックオーバーフローを避けるのですか?
- 8. なぜスイッチはswitch文のペン先
- 9. Java switch文
- 10. Java構文:変数をswitch caseにする? Javaで
- 11. java switch/case文でクラス名を使用できますか?
- 12. switch文のif文をwithからswitch文に変更する
- 13. .innerHTMLを避けることが推奨されるのはなぜですか?
- 14. switch文ではなくオブジェクトリテラルを使用
- 15. 値がViewBagから来たときに文字列のswitch文が失敗するのはなぜですか?
- 16. Javaは避けるIndexOutOfBoundsException
- 17. Java switch文<identifier> issue
- 18. Javaで "duplicate class"を避ける方法
- 19. なぜorg.hibernate.TransactionExceptionがHibernateで避けられるか
- 20. php switch文はバグですか?
- 21. Java Swing JScrollPaneがスクロールし続けるのはなぜですか?
- 22. 画像が文字化けするのはなぜですか?
- 23. Javaではオートボクシングを避けるべきです
- 24. switch(java.lang.Object)をjavaにできますか?
- 25. switch文のデフォルトの大文字小文字はオプションですか?
- 26. enumとswitchの場合アンラッピングを強制するのはなぜですか?
- 27. EF4独立系団体 - なぜそれらを避けるのですか?
- 28. Javaで '\ 117'が有効な文字リテラルであるのはなぜですか?
- 29. Javaジェネリックスで安全でないキャストの警告を避けるには
- 30. スタックサイズの変更を避け、C#でスタックオーバーフローを避けるには
実際はそうではありません。 if文が大きなラダーに渡されると、そのブロックを実行して底に出る – karina
先生は間違っています。 –
もし私が推測しなければならなかったのは、あなたの先生が新入生の文法がちょっと変わったと思っていると思います。しかし、紛らわしいので、何かを避けるべきではありません。あなたは、switch文を不必要に恐れているだけで、長い時間がかかるでしょう。プログラミングにおいて、異なる状況は異なる解決策を必要とする。場合によっては、switch文がif-elseよりはるかに簡単です。 – bpgeck