You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用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

火山引擎 最新活动