74

コピー アンド ペーストせずに、2 つの異なるケース値を同じコード ブロックに割り当てる方法はありますか? たとえば、68 未満と 40 は同じコードを実行する必要がありますが、30 は関係ありません。

case 68:
   //Do something
break;

case 40:
   //Do the same thing
break;

case 30:
   //Do something different
break;

このようなものが機能するはずだと考えるのは間違っていますか (明らかに機能していませんが)?

case 68 || 40:
   //Do something
break;

case 30:
   //Do something else
break;
4

6 に答える 6

203

途切れることなく並べるだけ

switch (myVar) {
  case 68:
  case 40:
    // Do stuff
  break;

  case 30:
    // Do stuff
  break;
}
于 2011-09-26T18:30:34.027 に答える
20

はい、case次のように、関連するステートメントを並べて配置するだけです。

case 40:  // Fallthrough
case 68:
   // Do something
   break;

case 30:
   // Do something different
   break;

コメントが存在するFallthrough理由は 2 つあります。

  • 意図的にこれを行っていることを人間の読者に安心させます
  • 偶発的なフォールスルーの可能性について警告を発する Lint のようなツールからの警告を無効にします。
于 2011-09-26T18:30:30.750 に答える
4
case 68:
case 40:
  // stuff
  break;
于 2011-09-26T18:30:18.033 に答える
0

スイッチケースは、掘り出し物に示すようにクラブで留めることができます。

また、2つのケースに限定されず、任意の数に拡張できます。ケースの。

于 2016-10-02T06:44:04.157 に答える