如何在if语句中为用户输入添加多个选项

时间:2019-03-26 13:52:19

标签: javascript html user-input

我正在尝试编写一个代码,以便您可以从百分比等级获得字母等级。评分等级印在代码的顶部。然后,我做了一个按钮,当您单击它时,它会提示suer输入他们的百分比等级。我试图这样做,如果用户输入例如93,代码将告诉他们他们有一个A。我试图对A的所有值100-90,对B的值89-80、79- C表示70,D表示69-60,E表示59-50,F小于50。我有等级刻度的代码,并且启动了该功能的功能,该功能将为用户提供字母等级,但无法弄清楚在if语句中如何具有多个值。

function myFunction() {
  var q1 = prompt("Please enter your percentage grade: ");
  if (q1 <= 100 && grade > 90) {
    alert("You have an A");
  }
  if (q1 <= 89 && grade > 80) {
    alert("You have a B");
  }
  if (q1 <= 79 && grade > 70) {
    alert("You have a C");
  }
  if (q1 <= 69 && grade > 60) {
    alert("You have a D");
  }
  if (q1 <= 59 && grade > 50) {
    alert("You have an E");
  }
  if (q1 > 50) {
    alert("You have an F");
  } else {
    alert("Broken")
  }
}
<html>
<body>
  <h1>Grade Scale</h1>
  <p>
    <table>
      <tr>
        <th>A</th>
        <th>B</th>
        <th>C</th>
        <th>D</th>
        <th>E</th>
        <th>F</th>
      </tr>
      <tr>
        <td>100-90</td>
        <td>89-80</td>
        <td>79-70</td>
        <td>69-60</td>
        <td>59-50</td>
        <td>
          < 50</td>
      </tr>
    </table>
  </p>

  <p2>
    <button onclick="myFunction()">Click Here To See Your Conversion!</button>
  </p2>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

您可以使用if - else语句来实现。这样可以确保所有if块只有一个条件匹配-并且每个if语句也只需要一个条件:

<p>   
  <button onclick="myFunction()">Click Here To See Your Conversion!</button>
</p>
<script>
function myFunction() {
  var grade = prompt("Please enter your percentage grade: ");
  if (grade > 90) {
    alert("You have an A");
  }
  else if (grade > 80){
    alert("You have a B");
  }
  else if (grade > 70){
    alert("You have a C"); 
  }
  else if (grade > 60){
    alert("You have a D");
  }
  else if (grade > 50){
    alert("You have an E");
  }
  else {
    alert("You have an F"); 
  }
}
</script>

顺便说一句:请检查您的变量并为所有变量使用相同的名称(我猜q1grade应该相同)。

答案 1 :(得分:0)

主要问题是您的变量未统一命名,因此我将它们全部更改为q1。您在>条件下的逻辑也有些偏离,因此我更改了它们,以便它们说明正确的范围。请记住,对于像B这样的东西,所有数字都将小于90且大于或等于80。90 > B >= 80

正如其他人提到的那样,<p1><p2>不是正确的html标签。请改用<p>

function myFunction() {
  var q1 = prompt("Please enter your percentage grade: ");
  if (q1 <= 100 && q1 >= 90) {
    alert("You have an A");
  }
  else if (q1 < 90 && q1 >= 80) {
    alert("You have a B");
  }
  else if (q1 < 80 && q1 >= 70) {
    alert("You have a C");
  }
  else if (q1 < 70 && q1 >= 60) {
    alert("You have a D");
  }
  else if (q1 < 60 && q1 >= 50) {
    alert("You have an E");
  }
  else if (q1 < 50 && q1 >= 0) {
    alert("You have an F");
  }
  else {
    alert("Broken")
  }
}
<!DOCTYPE html>
<html>
<body>
  <h1>
    Grade Scale
  </h1>

  <p>
    <table>
      <tr>
        <th>A</th>
        <th>B</th>
        <th>C</th>
        <th>D</th>
        <th>E</th>
        <th>F</th>
      </tr>
      <tr>
        <td>100-90</td>
        <td>89-80</td>
        <td>79-70</td>
        <td>69-60</td>
        <td>59-50</td>
        <td>< 50</td>
      </tr>
    </table>
  </p>
  
  <p>
    <button onclick="myFunction()">Click Here To See Your Conversion!</button>
  </p>

</body>
</html>