覚えている限り、switchステートメントのフォールスルーの使用は避けてきました。実際、switchステートメントのバグにすぎないということを、頭の中で掘り下げたため、可能なこととして意識の中に入るのを思い出すことはできません。しかし、今日、私はそれを仕様で使用するコードに出くわしました。そのため、コミュニティの誰もがswitchステートメントのフォールスルーについて何を考えているのかすぐに気になりました。
それはプログラミング言語が明示的に許可してはいけないものですか(C#のように、回避策を提供します)、それともプログラマーの手に委ねるのに十分強力な言語の機能ですか?
編集: 私はフォールスルーで何を意味するのか十分に特定していませんでした。私はこのタイプをよく使います:
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something
break;
case 2:
case 3:
case 4:
// Do something
break;
}
しかし、私はこのようなことが心配です。
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something, but fall through to the other cases
// after doing it.
case 2:
case 3:
case 4:
// Do something else.
break;
}
このように、ケースが0、1の場合は常に、switchステートメントのすべてを実行します。これは仕様で見たことがありますが、switchステートメントをこのように使用する必要があることに同意するかどうかはわかりません。最初のコード例は非常に便利で安全だと思います。2番目は一種の危険なようです。