将数字标记映射到基于字母的标记



我正在尝试编写一个程序来接收一个数字,并使用javascript和html将其映射到基于字母等级的标记。

当我运行代码时,我没有得到任何答案。

这是代码:

HTML

<h1>mapping a numerical grade to a letter grade</h1>
</header>
<div class="column1">
<div class="input">
a <input id="number1" type="number" min=" -32768" max=" 32767" />
</div>
<div class="input">
<button onclick="mapping()">enter</button>
</div>
<strong><p id="output"></p></strong>
</div>

Javascript

function mapping() {
var a = parseInt(document.getElementById("number1").value);
switch (true) {
case a > 89:
answer = "A+";
break;
case a > 79:
answer = "A";
break;
case a > 74:
answer = "B+";
break;
case a > 69:
answer = "B";
break;
case a > 64:
answer = "C+";
break;
case a > 59:
answer = "C";
case a > 54:
answer = "D+";
case a > 49:
answer = "D";
break;
case a > 40:
answer = "E";
break;
default:
answer = "F";
document.getElementById("output").innerHTML = answer;
}

document.getElementById("output").innerHTML = answer;在switch语句中。它将使用仅default的执行

此代码将起作用:

function mapping() {
var a = parseInt(document.getElementById("number1").value);
switch (true) {
case a > 89:
answer = "A+";
break;
case a > 79:
answer = "A";
break;
case a > 74:
answer = "B+";
break;
case a > 69:
answer = "B";
break;
case a > 64:
answer = "C+";
break;
case a > 59:
answer = "C";
case a > 54:
answer = "D+";
case a > 49:
answer = "D";
break;
case a > 40:
answer = "E";
break;
default:
answer = "F";
}
document.getElementById("output").innerHTML = answer;
}

开关(true(不起作用。开关(1(可以。

此外,我认为case只接受值,不接受比较——至少当我在Chrome和Opera中尝试时是这样。因此,您可能需要使用if-else语句来重写它。

最新更新