首页 > 解决方案 > 为什么我的“for”循环按一半计算并在目标数以下完成 2?

问题描述

我一直在练习一些基本概念,这让我感到困惑。我在提示符中输入了 30 岁,并希望控制台列出 22、21、20、19 和 18 岁,但实际上它会下降到 16 岁,并且也按 0.5 计算。知道为什么吗?

var age = parseInt(prompt("How old are you?"), 10);

function calcDateAge(age) {
  var dateAge = (age / 2) + 7;
  return dateAge;
}


for (i = age; i > 18; i--) {
  console.log(calcDateAge(i));
}

标签: javascript

解决方案


你得到小数是因为你的划分不准确。要解决此问题,请执行以下操作:

var dateAge = parseInt(age / 2) + 7;

这会将您的浮点数截断为整数。

现在你得到 16 的原因不是因为你的 i 变量将变为 16,而是你的 calcDateAge() 函数返回 16。

例如:当 i = 18 calcDateAge(i) = 16


推荐阅读