私の教師の一人は、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++ case/switch文を避ける方法
- 3. なぜC#switchは最初の文だけを実行するのですか?
- 4. Java - nextLine(); switch文の中で
- 5. なぜswitch文はtrueキーワードでのみ動作しますか?
- 6. Dispatcherの使用を避けるのはなぜですか?
- 7. switch文でNSIntegerを使用できないのはなぜですか?
- 8. 継続はなぜスタックオーバーフローを避けるのですか?
- 9. Javaのswitch文
- 10. なぜスイッチはswitch文のペン先
- 11. switch文が複数のケースを実行するのはなぜですか?
- 12. Java switch文
- 13. switch文をクラスに入れられないのはなぜですか?
- 14. このswitch文が実行されないのはなぜですか?
- 15. switch文パラメータにブール値が必要なのはなぜですか?
- 16. リファクタリングjava switch文(ブラックジャック)
- 17. Java構文:変数をswitch caseにする? Javaで
- 18. java switch/case文でクラス名を使用できますか?
- 19. Javaでforeachループのネストを避ける
- 20. .innerHTMLを避けることが推奨されるのはなぜですか?
- 21. Pythonにswitch-caseがないのはなぜですか?
- 22. Score to Gradeコンバータ、または:なぜ私のswitch文がバグですか? (Javascript)
- 23. なぜ単純なifとswitch文で構文解析エラーが発生する
- 24. switch文のif文をwithからswitch文に変更する
- 25. switch文でスタックしたJava初心者
- 26. 値がViewBagから来たときに文字列のswitch文が失敗するのはなぜですか?
- 27. Javaがif文をスキップするのはなぜですか?
- 28. switch文で別のケースの中にケースを置くことができるのはなぜですか?
- 29. Javaは避けるIndexOutOfBoundsException
- 30. switch文ではなくオブジェクトリテラルを使用
実際はそうではありません。 if文が大きなラダーに渡されると、そのブロックを実行して底に出る – karina
先生は間違っています。 –
もし私が推測しなければならなかったのは、あなたの先生が新入生の文法がちょっと変わったと思っていると思います。しかし、紛らわしいので、何かを避けるべきではありません。あなたは、switch文を不必要に恐れているだけで、長い時間がかかるでしょう。プログラミングにおいて、異なる状況は異なる解決策を必要とする。場合によっては、switch文がif-elseよりはるかに簡単です。 – bpgeck