46

JavaScript を使用して switch case ステートメントで範囲を使用するにはどうすればよいですか? したがって、すべての可能性についてコードを記述する代わりに、それらを範囲でグループ化したいと思います。たとえば、次のようになります。

switch(myInterval){
   case 0-2:
      //doStuffWithFirstRange();
      break;

   case 3-6:
      //doStuffWithSecondRange();
      break;

   case 6-7:
      //doStuffWithThirdRange();
      break;

   default:
      //doStuffWithAllOthers();
}
4

7 に答える 7

1

特に間隔が0で始まる場合、すでに投稿された優れた回答に少し多様性を追加するために、findIndexええES6)を使用したソリューションを次に示します。

const range = [0, 2, 6, 7];
const randeIndex = range.findIndex(threshold => myInterval <= threshold);
switch (rangeIndex) {
  case 1:
    //doStuffWithFirstRange();
    break;

  case 2:
    //doStuffWithSecondRange();
    break;

  case 3:
    //doStuffWithThirdRange();
    break;
  default:
  //doStuffWithAllOthers();
}

range配列は順序付けられているためfindIndex、最初のものと一致します。0 または 1 から始まる範囲の名前の付け方によっては、 の最初の 0 を削除する必要がある場合がありますrange

于 2019-07-18T06:31:40.103 に答える
-2

定義された文字列または値で case ステートメントを使用するか、範囲がより高い場合は「if else if」を使用します

于 2013-06-17T10:52:52.050 に答える
-3

int levelNumber = YOUR_VALUE FROM

NSString* strMessage;

switch (levelNumber) {
    case 1...10:
    {
        // Do something...
        break;
    }
    case 11...20:
    {
        // Do something...
        break;
    }
    case 21...30:
    {
        // Do something...
        break;
    }
    case 31...40:
    {
        // Do something...
        break;
    }
    default:
        break;
}

参照: https://www.codingexplorer.com/loops-switch-statements-ranges-swift/

于 2016-05-19T10:46:17.050 に答える