如何使用JavaScript实现数字与对应等级的打印(含1-100及0-100分级需求)
嘿,我来帮你搞定这两个JavaScript需求,尤其是需求二里的代码逻辑问题~
需求一:打印1至100数字及对应等级
按照你给出的示例(100、99对应等级A),这里我们沿用需求二的区间规则来实现:
// 循环遍历1到100的数字 for (let i = 1; i <= 100; i++) { let grade; // 根据区间匹配等级 if (i >= 86) { grade = 'A'; } else if (i >= 71) { grade = 'B'; } else if (i >= 50) { grade = 'C'; } else if (i >= 41) { grade = 'D'; } else if (i >= 36) { grade = 'E'; } else { grade = 'F'; } console.log(`${i}-${grade}`); }
需求二:修复0至100数字的等级匹配代码逻辑
先说说你原代码的几个问题:
- 用了固定的
score = 100,完全没和循环变量i关联,导致所有输出都是基于100分的结果 - 第二个
if的语法错误:>= 60前面缺少变量,而且逻辑也不对(应该是匹配71-85的B等级) - 用了两个独立的
if,会导致符合条件的数字被多次打印
下面是修复后的代码,同时保留你原代码的倒序遍历逻辑:
// 倒序遍历0到100的数字 for (let i = 100; i >= 0; i--) { let grade; // 使用else if确保每个数字只匹配一个等级 if (i >= 86) { grade = 'A'; } else if (i >= 71) { grade = 'B'; } else if (i >= 50) { grade = 'C'; } else if (i >= 41) { grade = 'D'; } else if (i >= 36) { grade = 'E'; } else { grade = 'F'; } console.log(`${i}-${grade}`); }
如果想要正序遍历,只需要把循环改成for (let i = 0; i <= 100; i++)即可。
内容的提问来源于stack exchange,提问作者Timilehin Emmanuel OJO




