javascript - 为什么这个 while 循环会导致无限循环?

标签 javascript html while-loop

出于某种原因,我很难让这个 while 循环工作。每当我尝试对其进行测试时,它都会使我的浏览器崩溃,并且在一种情况下,我能够在控制台中看到循环的结果,我所看到的只是打印了几次 NaN。我在代码中忘记了什么吗?

<div id="output"></div>

<script>

var starting = prompt("What is your starting balance?");
var target = prompt("What is your target balance?");
var interest = prompt("What is your interest rate?");
var periods = 0;

var current = starting;
var greaterThan = false;

while (greaterThan === false) {
  if (current < target) {
    current = current + (current * interest);
    periods++;
  } else {
    greaterThan = true;
    alert("it took " + periods + " periods to make your starting balance greater than your target balance.");
    document.querySelector('#output').textContent = "to grow an initial investment of " + starting + " to " + target + " at a " + interest + " interest rate will require " + periods + " investment periods.";
  }
}

</script> 

最佳答案

我能看到的一个问题是,您所有的输入值都是字符串,而不是数字,所以他们进行的是字符串比较而不是数字

var starting = +prompt("What is your starting balance?") ||0;
var target = +prompt("What is your target balance?")||0;
var interest = +prompt("What is your interest rate?")||1;

prompt()前面的+就是unary plus运算符(operator)

关于javascript - 为什么这个 while 循环会导致无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32858177/

相关文章:

html - CSS 与 Select 元素的跨浏览器兼容性

javascript - 如何使用弹出窗口将变量传递到新页面?

html - 如何让绝对定位的div在手机上离开屏幕

java - 为什么我的程序停止运行并且不返回错误?

javascript - JavaScript 中的 VAL() 函数

javascript - setInterval 不调用带有参数的函数

ruby - 使用 while 循环从 Ruby 中的文件中读取

python - 无法在 python 中跳出 while 循环

javascript - 为什么我不能将此变量重新分配给 node.js 中的新值?

php - 如何从 jQuery UI 对话框返回用户输入