例をデフォルト毎回返すJavaScriptでのステートメントをスイッチではなく、

dnewbie25:

私はから問題条件文3を解決しようとしていたMozilla Foundationはウェブサイト事があり、活動は場合にのみ(machineActive)内のステートメントを切り替えて使用することを要求します。私があれば、他に使用して、それを解決したが、私は、コンソールショーデフォルトのメッセージ・Iセット、「何かが間違っているでなければならない」、スコア変数を取得するどのような値に関係なく、switchステートメントを使用しようとした一回。いつでも私は、デフォルトのメッセージが表示されている例を変更します。

この場合にはswitch文を使用する正しい方法は何ですか?if-else最も適切な選択ですが、私は仕事のルールで、この時間を固執したいです。

let response;
let score = 75;
let machineActive = true;

if(machineActive) {


    switch(score){

        case (score<=100 && score>=90):
            response = "What an amazing score! Did you cheat? Are you for real?";
        break;

        case (score<=89 && score>=70):
            response = "That\'s a great score, you really know your stuff.";
        break;


        case (score<=69 && score>=40):
            response = "You did a passable job, not bad!";
        break;


        case (score<=39 && score>=20):
            response = "You know some things, but it's a pretty bad score. Needs improvement.";
        break;

        case (score<=19 && score>=0):
            response = "That was a terrible score — total fail!";
        break;

        default:
            response = "Something must be wrong";

    }


} else {
  response = 'The machine is turned off. Turn it on to process your score.';
}




マイク:

switch文は、あなたは数に渡している。例いずれかに渡された変数に等しいかどうかを判断するために使用されているので、あなたのブール例はいずれも数に等しいません。あなたは真を渡すと、いずれの場合はtrueに評価さかどうかを確認したいとしています。

ケース句は、表現に対して一致させるために使用しました。式が指定された値Nと一致した場合、case節内のステートメントは、switchステートメントや休憩のいずれかの端まで実行されます。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch

また、場合によっては順番に評価され、そしてあなたが休憩を持っているので、あなたはすべてのケースに範囲の上端をチェックする必要はありません。

switch (true) {
  case score > 100: 
    response = "You definitely cheated. You must have gone to https://www.stackoverflow.com to get answers to all these questions."
    break

  case score >= 90:
    response = "What an amazing score! Did you cheat? Are you for real?"
    break

  case score >= 70:
    response = "That's a great score, you really know your stuff."
    break

  case score >= 40:
    response = "You did a passable job, not bad!"
    break

  case score >= 20:
    response =
      "You know some things, but it's a pretty bad score. Needs improvement."
    break

  case score >= 0:
    response = "That was a terrible score — total fail!"
    break

  default:
    response = "Something must be wrong"
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=30651&siteId=1