13

私は現在、switchステートメントを使用してjqueryスクリプトに取り組んでおり、いくつかの「ケース」がいくつかのプロパティを共有している場合、何が最善の解決策であるか疑問に思っていました.このパターンがあるとしましょう:

switch (settings.xxx) {
case 'case1':
    Execute some code
    break;
case 'case2':
    Execute some code
    break;
case 'case3':
    Execute some code
    break;
}

いくつかのプロパティが 3 つのケースに共通しているため、それぞれのケースについて、部分的に繰り返される非常に多くのコードがあります。だから私の質問は、私は同じことをすることができます:

switch (settings.xxx) {

case 'case1':
case 'case2':
case 'case3':
    Execute some code
    break;

}

switch (settings.xxx) {

case 'case1':
case 'case2':
    Execute some code
    break;
case 'case2':
case 'case3':
    Execute some code
    break;

}

それとも悪い習慣ですか?

4

2 に答える 2

8

ベスト プラクティスは、コードの繰り返しを避けることです。そうすれば、後でコードを変更する必要がある場合でも、複数の場所で変更することを覚えておく必要はありません。

一部のコードが一部のケースにのみ適用される状況では、ブレークを省略でき、実行は最初のセクションの実行後に次のセクションにフォールスルーします。これは、特別なケースのコードが一般的なケースのコードの前に実行できる場合にのみ適用されます。これを行うときは注意して、意図的に行っていることを明確に示すコメントを追加してください。そうしないと、コードが後で編集されたときに、他の誰かがそれが意図的であることに気付かず、欠落している場所にブレークを追加する可能性があります。下記参照:

switch (settings.xxx) {
case 'case1':
case 'case2':
    Execute some code that applies to cases 1 & 2
    // break left out to allow execution to fall through
case 'case3':
    Execute some code that applies to cases 1 - 3
    break;
case 'case4':
    Execute different code
    break;
}
于 2013-06-07T14:35:55.437 に答える