You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:使用switch语句实现角色等级对应生命值计算函数

修正后的角色生命值计算函数

你的代码存在几个核心问题:

  • 参数命名使用了JS内置构造函数Number,易引发命名冲突,建议改为level
  • switch语句的判断对象错误,应该用传入的等级参数而非函数自身
  • 函数未返回对应生命值,反而在case里递归调用做测试,会触发无限递归

以下是正确实现:

var determineHP = function(level) {
  switch (level) {
    case 0:
      return 100;
    case 1:
      return 150;
    case 2:
      return 180;
    case 3:
      return 190;
    default:
      // 处理未定义等级的情况,可根据需求调整默认值
      return 100;
  }
}

// 外部测试函数逻辑
console.log(determineHP(0) === 100); // true
console.log(determineHP(1) === 150); // true
console.log(determineHP(2) === 180); // true
console.log(determineHP(3) === 190); // true

关键说明:

  • 用level作为参数名,规避与内置对象的命名冲突
  • switch判断目标为传入的level参数,匹配后直接返回对应生命值
  • 新增default分支处理未定义等级的场景,提升代码鲁棒性
  • 测试代码放在函数外部,避免递归调用导致的栈溢出

内容的提问来源于stack exchange,提问作者eric toll

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:45:02