her*_*o04 4 javascript syntax switch-statement
目前正在编写一个将数字等级转换为美国系统的函数。基本上结果应该是这样的:
你得了 D (60%)!
但我明白了:
你得了 60 60%!
除了括号之外,我还应该做什么才能使它看起来尽可能像?
代码如下:
function gradeConverting(grade) {
let gradePercent = grade + "%";
switch (grade) {
case (90 < grade && grade <= 100):
grade = "A";
break;
case (80 < grade && grade <= 89):
grade = "B";
break;
case (70 < grade && grade <= 79):
grade = "C";
break;
case (60 <= grade && grade <= 69):
grade = "D";
break;
case (50 <= grade && grade <= 59):
grade = "E";
break;
case (grade <= 49):
grade = "F";
break;
}
return console.log("You got a " + grade + " " + gradePercent + "!");
}
gradeConverting(55);
Run Code Online (Sandbox Code Playgroud)
您的代码逻辑完全有效,但您使用的switch()方式错误。
检查有关的文档:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch
如果你输入switch(grade)thensomething则 case something期望value匹配grade而不是expression返回true|false
例如:
switch (grade) {
case 90: // only for grade === 90
grade = "A";
break;
case 55: // only for grade === 55
...
Run Code Online (Sandbox Code Playgroud)
事实上,你可以有一个包含多个语句的函数,if然后返回lettergrade。或者仍然使用当前的逻辑进行一些修改并仍然使用switch().
我创建了另一个变量lettergrade,建议不要修改grade,除非您知道自己要做什么。
switch (grade) {
case 90: // only for grade === 90
grade = "A";
break;
case 55: // only for grade === 55
...
Run Code Online (Sandbox Code Playgroud)