Michael Wong
Michael Wong

Reputation: 17

Why is my switch not working?

I have a switch statement to give you a letter mark if you enter a number mark. I am not getting any errors from chrome so i don't know what i am doing wrong. Would i be just formatting it wrong?

<html>
   <body>
<h1>Rank Your Mark!!</h1>
Enter your mark to rank it.

 <input type="number" name="grade" id="mark">
 <input type="button" name="mark" id="grade" value="Rate" onclick="rateMark()">

      <script>
function rateMark(){
  switch(grade)
  {
    case"F":
      mark > 50;
      break;

    case"D":
      mark >= 50 && mark <=59.9;
      break;

    case"C":
      mark >= 60 && mark <=69.9;
      break;

    case"B":
      mark >= 70 && mark <= 79.9;
      break;

    case"A":
      mark >= 80 && mark <= 89.9;
      break;

    case"A+":
      mark >= 90 && mark <= 100;
      break;
  }
  document.getElementById("demo").innerHTML = "You got a" + mark;
}
  </script>
  <br>
<p id="demo"></p>
   </body>
   </html>

Upvotes: 1

Views: 225

Answers (2)

Maycow Moura
Maycow Moura

Reputation: 6949

You're not using the right way, check how it works here.

What you're doing is compare if grade variable is "F", "D", "C".....

Use if and else if and put your statements into them, like this:

var mark = document.getElementById('mark').value // gets the input value to "mark" variable
if(mark >= 70 && mark <= 79.9){
   // do something here
} else if(mark >= 80 && mark <= 89.9){
   // do another thing here
}

so on...

Upvotes: 2

user3453562
user3453562

Reputation: 111

See this:

<body>
<h1>Rank Your Mark!!</h1>
Enter your mark to rank it.

 <input type="number" name="grade" id="mark">
 <input type="button" name="mark" id="grade" value="Rate" onclick="rateMark()">

      <script>
      function rateMark(){
   	mark = document.getElementById("mark").value
        if (mark < 50) {
      	   mark = "F"
        } else if (mark >= 50 && mark <=59.9) {
      	   mark = "E"
        } else if (mark >= 60 && mark <=69.9) {
     	   mark = "D"
  	} else if (mark >= 70 && mark <= 79.9) {
      	   mark = "C"
        } else if (mark >= 80 && mark <= 89.9) {
           mark = "B"
        }  else if (mark >= 90 && mark <= 100) {
     	   mark = "A"
        }
       document.getElementById("demo").innerHTML = "You got a " + mark;
      }
  </script>
  <br>
<p id="demo"></p>
   </body>

Upvotes: 0

Related Questions