JS switch statement error

Asked 2 years ago, Updated 2 years ago, 31 views

   <head>
    <meta charset="utf-8" />
    <title>Performance calculation program</title>
        <script>
            var input = Number (prompt('Enter a number');

            switch(input) {
                case number > 89;
                    alert('A+');
                    break;
                case number > 79;
                    alert('A');
                    break;
                case number > 69;
                    alert('B+');
                    break;
                case number > 59;
                    alert('B');
                    break;
                case number > 49;
                    alert('C+');
                    break;
                case number > 39;
                    alert('C');
                    break;
                case number > 29;
                    alert('D+');
                    break;
                case number > 19;
                    alert('D');
                    break;
                case number < 20;
                    alert('F');
                    break;
            }
        </script>
</head> 

Why doesn't it work?

javascript switch문

2022-09-21 10:13

1 Answers

If you want to use the inequality as a case condition, you have to do this. I heard it's pretty slow.

switch (true) {
  case (val < 1000): /* do something */ break;
  case (val < 2000): /* do something */ break;
  ...
}

For example, if the number == 93, the user will receive all scores from A+ to F. Think about it carefully.

If I were you, I'd do it this way. Run once.

// Omit intermediate
varscore = prompt ('Enter a number'; 'Number');
For (let i = 0; i < grading Rule.length; i++) { // Check from the front
    const rule = gradingRule[i];
    If (parseInt(score) >= rule.minScore) { // If any of them are caught,
        alert('Your rating is '+rule.grade+'); // respond and
        return true; // abort execution
    }
}


2022-09-21 10:13

If you have any answers or tips


© 2024 OneMinuteCode. All rights reserved.