为什么以下JavaScript代码的while循环会无限循环?
错误原因
- 你的
averge变量仅在进入while循环前完成了一次计算,后续循环体内只对ya执行自增操作,没有同步更新averge的取值,导致averge永远保持初始计算得到的68.7,一直满足averge < 95的循环判断条件,因此会无限执行循环。
修复方法
你需要把和ya关联的计算逻辑移入while循环内部,每次ya更新后重新计算averge的值,修复后的代码如下:
var ya = 1; Formitivegrades = [100, 95, 100, 85, 100] Formitiaveav1 = Formitivegrades[0] + Formitivegrades[1] + Formitivegrades[3] + Formitivegrades[4] + Formitivegrades[2] Formitiaveav2 = Formitiaveav1 / 5 sumgrades = [100] let averge = 0 while(averge < 95){ sumav1 = ya + sumgrades[0] sumav2 = sumav1 / 2 averge = .4 * Formitiaveav2 + .6 * sumav2 console.log(ya) ya++; } console.log(averge)
内容的提问来源于stack exchange,提问作者Boes__ BW
相关产品推荐
相关产品推荐

