【问题标题】:What is wrong with my operators? Javascript我的运营商出了什么问题? Javascript
【发布时间】:2018-07-07 04:55:12
【问题描述】:

我不知道为什么它不起作用。假设当你得到一个等于或大于 90 的分数时等于 A。当你得到等于 B 的 80 到 89 之间的分数时......

let nota = prompt("Ingrese su nota: ");


if (nota >= 90){
  console.log(nota + " " + "equivale a una A");
}

else if (nota == 80  ||  nota <= 89){
  console.log(nota + " " + "equivale a una B");
}
else if (nota == 70  ||  nota <= 79){
  console.log(nota + " " + "equivale a una C");
}
else if (nota == 60  ||  nota <= 69){
  console.log(nota + " " + "equivale a una D");
}
else{
  console.log("Tienes una F");

}

【问题讨论】:

  • 你可能想在这里使用switch

标签: javascript logic logical-operators


【解决方案1】:

你的问题是在第二个测试中:

nota == 80  ||  nota <= 89

每个小于等于 89 的值都会通过,因此它们都会得到 B。还要注意,测试 nota == 80 是多余的,因为 80 也是

nota <= 89

当然可以:

nota >= 80  &&  nota <= 89

但这比它需要的更复杂。您可以简化测试,因为 if else 意味着一旦一个测试为真,它将停止测试,所以只需使用 &gt;= 和所有测试的较低值:

let nota = prompt("Ingrese su nota: ");

if (nota >= 90){
  console.log(nota + " " + "equivale a una A");
  
} else if (nota >= 80) {
  console.log(nota + " " + "equivale a una B");

} else if (nota >= 70) {
  console.log(nota + " " + "equivale a una C");

} else if (nota >= 60) {
  console.log(nota + " " + "equivale a una D");

} else {
  console.log("Tienes una F");
}

测试必须按正确的顺序进行,因此如果值为 90 或更大,则满足第一个测试并且不测试其他测试。如果该值为 82,则第一个测试失败,因此进入下一个测试,下一个测试通过,结果为 B,并且不再尝试进一步的测试。

对于其他值以此类推,所以如果值为 55,则所有测试都失败并进入最后的 else

【讨论】:

    【解决方案2】:

    将表达式替换为nota &gt;= 80 &amp;&amp; nota &lt;= 89

    【讨论】:

      【解决方案3】:

      使用此代码

       let nota = prompt("Ingrese su nota: ");
      if (nota >= 90){
        console.log(nota + " " + "equivale a una A");
       
      }
      
      else if (nota <= 89 && nota >= 80 ){
        console.log(nota + " " + "equivale a una B");
      
      }
      else if (nota <= 79 && nota >= 70){
        console.log(nota + " " + "equivale a una C");
        
      }
      else if (nota <= 69 && nota >= 60){
        console.log(nota + " " + "equivale a una D");
      
      }
      else{
        console.log("Tienes una F");
      
      }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-01
        • 2017-03-22
        • 2022-04-02
        • 1970-01-01
        • 2015-08-20
        • 2020-12-17
        • 2010-12-26
        相关资源
        最近更新 更多