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

请求将计算骰子投掷平均值的for循环改写为while循环

把RollAverage函数从for循环改写为while循环

没问题,我帮你搞定这个骰子平均值计算的函数改写,顺便修正了原代码里的小bug(原for循环的计数逻辑有问题哦)。

修改后的代码(while循环版本)

function RollAverage() {
    // 假设:outputDiv可用于输出
    // 结果:统计投掷次数并计算平均值
    var userNum, countTotal, rollSum;
    userNum = parseFloat(document.getElementById('textBox').value);
    countTotal = 0;
    rollSum = 0;

    // 替换原for循环的while循环逻辑
    while (countTotal < userNum) {
        // 累加两个骰子的投掷结果
        rollSum += RandomInt(1, 6) + RandomInt(1, 6);
        // 完成一次投掷,计数+1
        countTotal++;
    }

    // 计算平均值并输出(补全原代码的截断部分)
    const average = rollSum / userNum;
    document.getElementById('outputDiv').innerHTML = `Here's the average: ${average.toFixed(2)}`;
}

关键改动说明

  • 替换循环类型:把原有的for循环改成了逻辑更直观的while循环,先初始化好计数变量countTotal和总和变量rollSum,然后在countTotal小于用户指定次数时持续循环。
  • 修复计数错误:原for循环里的countTotal=countTotal++是无效写法(后置自增会先返回原值,赋值后等于没变化),而且循环体里还额外写了countTotal++,会导致实际投掷次数是用户输入的一半。改成while循环后,每次循环只执行一次countTotal++,计数逻辑准确。
  • 补全输出逻辑:原代码的输出部分被截断了,我帮你补全了平均值的计算和格式化输出,保留两位小数让结果更直观。

内容的提问来源于stack exchange,提问作者Erin Ralph

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:33:57